☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Cozmoslabs logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L 🐛 CWE-94
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-10261

CVE-2024-10261 Privilege Escalation in Cozmoslabs
📅 PUBLISHED: 2024-11-09 11:19 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 1.23%
👁️
1.23% probability
30.8× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Romania License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 7.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
7.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-10261 is a critical arbitrary shortcode execution vulnerability affecting the WordPress plugin "Paid Membership Subscriptions – Effortless Memberships, Recurring Payments & Content Restriction" by Cozmoslabs, in all versions up to and including 2.13.0. This vulnerability allows an unauthenticated attacker to execute arbitrary WordPress shortcodes by exploiting a missing validation check before the do_shortcode() function is called. Successful exploitation can lead to unauthorized content injection, data exfiltration, or privilege escalation depending on the shortcodes available in the WordPress environment. The vulnerability has a CVSS score of 7.3 (High) and currently has no known public exploit or patch.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability resides in a WordPress plugin distributed via the official WordPress plugin repository. The plugin is not an NPM, PyPI, Go, or Ruby package, but it is a critical component of the WordPress supply chain. Users are advised to monitor the plugin's update channel and consider temporary disabling or replacing the plugin until a patch is released.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.3 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: Low
  • Integrity Impact: Low
  • Availability Impact: Low

The vulnerability is easily exploitable remotely without authentication, making it a high-priority threat for WordPress sites using the affected plugin.

Deep Dive & Mechanics

The vulnerability lies in the plugin's handling of user-supplied input that is passed to the do_shortcode() function without proper validation or sanitization. WordPress shortcodes are powerful macros that can execute arbitrary PHP code, query the database, or render dynamic content. By injecting a malicious shortcode, an attacker can:

  • Execute arbitrary SQL queries via shortcodes like [query].
  • Read or write files if a file-manipulation shortcode exists.
  • Escalate privileges by executing admin-level shortcodes.
  • Deface the site or inject malicious JavaScript.

The specific vulnerable code path is triggered when an unauthenticated user submits a request that includes a parameter (likely a POST or GET parameter) that is directly passed to do_shortcode(). The plugin fails to check if the user has the necessary permissions or if the input is a valid shortcode.

Vulnerable vs. Patched Code

Vulnerable Code (example from version 2.13.0):

// In some handler function
$shortcode = $_POST['shortcode_input'];
echo do_shortcode( $shortcode );

Patched Code (hypothetical fix):

// Validate and sanitize input
$shortcode = sanitize_text_field( $_POST['shortcode_input'] );
if ( current_user_can( 'manage_options' ) ) {
    echo do_shortcode( $shortcode );
} else {
    echo 'Unauthorized';
}

The patched version would include proper capability checks and input sanitization before executing any shortcode.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with the vulnerable plugin installed and activated (version <= 2.13.0).
  • No authentication required.

Exploitation Steps:

  1. Identify the vulnerable endpoint. This is typically an AJAX action or form handler that accepts user input and passes it to do_shortcode().
  2. Craft a POST request with a malicious shortcode payload. For example:
    POST /wp-admin/admin-ajax.php HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    action=vulnerable_action&shortcode_input=[wp_php_eval code='echo "PWNED";']
    
  3. If the shortcode is executed, the server will respond with the output of the shortcode.

Example using cURL:

curl -X POST http://target.com/wp-admin/admin-ajax.php \
  -d "action=vulnerable_action&shortcode_input=[wp_php_eval code='system(\"id\");']"

Blue Team (Detection & Defense)

Detection:

  • Monitor for unusual POST requests to admin-ajax.php or other plugin-specific endpoints containing shortcode-like patterns (e.g., [ and ]).
  • Look for spikes in do_shortcode() calls in PHP error logs.
  • Use WAF rules to block requests containing do_shortcode or suspicious shortcode patterns.

Defense:

  • Immediately disable the plugin if no patch is available.
  • Implement a Web Application Firewall (WAF) rule to block requests containing [ and ] in parameters that are not expected to contain shortcodes.
  • Restrict access to the vulnerable endpoint via .htaccess or server-level rules.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • POST requests to /wp-admin/admin-ajax.php with parameters containing [ and ] (e.g., shortcode_input=[...]).
    • Unusual HTTP response bodies containing output from executed shortcodes (e.g., system commands, database dumps).
  • File IOCs:

    • Unexpected files in the WordPress uploads directory (e.g., shell.php).
    • Modified .htaccess files with malicious redirects.
  • Log IOCs:

    • PHP error logs showing do_shortcode() calls with unexpected arguments.
    • Web server access logs showing repeated POST requests to the vulnerable endpoint.

Detection Engineering

YARA Rule

rule CVE_2024_10261_Shortcode_Injection {
    meta:
        description = "Detects attempts to exploit CVE-2024-10261 via shortcode injection in WordPress"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-10261"
    strings:
        $shortcode_pattern = /\[[a-zA-Z_]+[^\]]*\]/
        $vulnerable_param = "shortcode_input"
        $do_shortcode = "do_shortcode"
    condition:
        any of ($shortcode_pattern) and $vulnerable_param and $do_shortcode
}

Sigma Rule

title: CVE-2024-10261 WordPress Shortcode Injection
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects POST requests to WordPress admin-ajax.php with shortcode injection attempts
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'admin-ajax.php'
        cs-uri-query|contains: 'shortcode_input'
        cs-uri-query|re: '\[.*\]'
    condition: selection
falsepositives:
    - Legitimate use of shortcodes in admin panels (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-10261 WordPress Shortcode Injection Attempt"; flow:to_server,established; content:"POST"; http_method; content:"admin-ajax.php"; http_uri; content:"shortcode_input"; http_client_body; pcre:"/\[[a-zA-Z_]+[^\]]*\]/"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if it is not critical to business operations.
  2. Apply a virtual patch using a WAF to block requests containing shortcode_input parameter with shortcode syntax.
  3. Monitor logs for exploitation attempts.

Long-term Fix:

  • The vendor (Cozmoslabs) must release a patched version that includes proper input validation and capability checks before calling do_shortcode().
  • Until then, consider replacing the plugin with an alternative that provides similar functionality.

Workaround:

  • Add the following rule to .htaccess to block direct access to the vulnerable endpoint:
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_URI} ^/wp-admin/admin-ajax\.php
        RewriteCond %{QUERY_STRING} shortcode_input
        RewriteRule .* - [F,L]
    </IfModule>
    

Valters IT
Securing Digital Frontiers

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Paid Membership Subscriptions"
http.html:"paid-member-subscriptions"
wp-content/plugins/paid-member-subscriptions/

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-10261/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.