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

CVE-2025-24712

CVE-2025-24712 Cross-Site Request Forgery in Radiustheme
📅 PUBLISHED: 2025-01-24 18:15 UTC 🔄 UPDATED: 2026-08-12 14:53 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: 0.14%
👁️
0.14% probability
3.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1204
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
A: L Availability Low
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-24712 is a Cross-Site Request Forgery (CSRF) vulnerability in the Radius Blocks WordPress plugin, developed by RadiusTheme. This flaw allows an attacker to trick an authenticated administrator into performing unintended actions, such as modifying plugin settings or injecting malicious content, without their consent. The vulnerability affects all versions up to and including 2.1.2. As a WordPress plugin issue, the attack surface is limited to sites running the vulnerable plugin, and exploitation requires user interaction (e.g., clicking a crafted link). The CVSS score of 5.4 (Medium) reflects the need for user interaction and the limited impact on confidentiality, integrity, and availability.

⚡ 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. Users who installed the plugin from the WordPress dashboard or via direct download are affected. No package manager (NPM, PyPI, Go, Ruby) is involved. The supply chain risk is moderate, as the plugin is not actively maintained with a patch, and users must rely on manual mitigation or removal.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L
  • Base Score: 5.4 (Medium)
  • Attack Vector (AV): Network – The attack is launched remotely.
  • Attack Complexity (AC): Low – No special conditions required.
  • Privileges Required (PR): None – The attacker does not need authentication.
  • User Interaction (UI): Required – The victim must click a link or visit a malicious page.
  • Scope (S): Unchanged – The vulnerable component remains the same.
  • Confidentiality (C): None – No data exposure.
  • Integrity (I): Low – Limited ability to modify data (e.g., plugin settings).
  • Availability (A): Low – Limited ability to disrupt service.

Threat Level: Medium. Exploitation requires social engineering, but the impact can include unauthorized changes to the WordPress site, such as altering block configurations or injecting malicious scripts.

Deep Dive & Mechanics

The vulnerability exists in the Radius Blocks plugin due to missing or improper CSRF nonce validation on state-changing requests. WordPress plugins typically use nonces (number used once) to verify that requests originate from the legitimate admin interface. In this plugin, certain AJAX endpoints or form submissions lack this validation, allowing an attacker to craft a malicious request that, when executed by an authenticated admin, performs actions on their behalf.

Attack Flow:

  1. The attacker identifies a vulnerable endpoint (e.g., /wp-admin/admin-ajax.php?action=radius_blocks_update_settings).
  2. The attacker crafts a malicious HTML page or email containing a CSRF payload (e.g., a hidden form that auto-submits).
  3. The victim (authenticated WordPress admin) visits the malicious page.
  4. The victim’s browser sends the forged request to the WordPress site, including the victim’s session cookies.
  5. The server processes the request without validating the nonce, executing the attacker’s intended action (e.g., changing plugin settings, adding malicious blocks).

Root Cause: The plugin’s code does not call check_ajax_referer() or wp_verify_nonce() on sensitive actions, leaving the CSRF protection gap.

Vulnerable vs. Patched Code

Since no official patch is available, the following illustrates the vulnerable pattern and a hypothetical fix.

Vulnerable Code (e.g., in radius-blocks/includes/class-ajax.php):

add_action('wp_ajax_radius_blocks_update_settings', 'radius_blocks_update_settings_callback');
function radius_blocks_update_settings_callback() {
    // Missing nonce check
    $settings = $_POST['settings'];
    update_option('radius_blocks_settings', $settings);
    wp_die();
}

Patched Code (Hypothetical):

add_action('wp_ajax_radius_blocks_update_settings', 'radius_blocks_update_settings_callback');
function radius_blocks_update_settings_callback() {
    // Added nonce verification
    if (!check_ajax_referer('radius_blocks_nonce', 'nonce', false)) {
        wp_die('CSRF validation failed.');
    }
    $settings = $_POST['settings'];
    update_option('radius_blocks_settings', $settings);
    wp_die();
}

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • A WordPress site with Radius Blocks plugin version <= 2.1.2.
  • An authenticated admin user session.
  • A controlled attacker server to host the CSRF payload.

Step 1: Identify Vulnerable Endpoint Use browser developer tools or intercept traffic to find AJAX actions. Example: admin-ajax.php?action=radius_blocks_update_settings.

Step 2: Craft CSRF Payload Create an HTML file (csrf.html) that auto-submits a form to the vulnerable endpoint:

<html>
<body>
<form id="csrf" action="http://target-site.com/wp-admin/admin-ajax.php" method="POST">
  <input type="hidden" name="action" value="radius_blocks_update_settings">
  <input type="hidden" name="settings" value='{"malicious": "data"}'>
  <input type="submit" value="Submit">
</form>
<script>document.getElementById('csrf').submit();</script>
</body>
</html>

Step 3: Deliver Payload Host the file on an attacker server and send the link to the victim (e.g., via email or social engineering).

Step 4: Verify Exploitation Check the WordPress site for altered settings or injected content.

Blue Team (Defense & Detection)

Detection:

  • Monitor for unexpected AJAX requests to admin-ajax.php with actions related to Radius Blocks.
  • Look for referrer headers that do not match the WordPress admin domain.
  • Use the Sigma rule below to detect CSRF attempts.

Mitigation:

  • Disable or remove the Radius Blocks plugin until a patch is available.
  • Implement a Web Application Firewall (WAF) rule to block requests to admin-ajax.php with suspicious referrers.
  • Educate users about phishing and CSRF attacks.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP POST requests to /wp-admin/admin-ajax.php with action=radius_blocks_* parameters.
    • Referrer headers pointing to external domains.
  • File IOCs:
    • Modified wp_options table entries for radius_blocks_settings.
    • Unexpected files in /wp-content/uploads/ or /wp-content/plugins/radius-blocks/.
  • Log IOCs:
    • WordPress debug log entries showing failed nonce checks (if logging enabled).
    • Web server access logs with unusual POST requests to admin-ajax.php.

Detection Engineering

YARA Rule

rule CVE_2025_24712_CSRF_RadiusBlocks {
    meta:
        description = "Detects CSRF exploitation attempts against Radius Blocks plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-24712"
    strings:
        $ajax_action = "radius_blocks_update_settings" nocase
        $ajax_action2 = "radius_blocks_save" nocase
        $nonce_missing = "check_ajax_referer" nocase
    condition:
        any of ($ajax_action*) and not $nonce_missing
}

Sigma Rule

title: CVE-2025-24712 CSRF Exploitation Attempt
id: 8f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
status: experimental
description: Detects CSRF attempts against Radius Blocks plugin
author: Valters IT
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'admin-ajax.php'
        cs-uri-query|contains: 'action=radius_blocks_'
    condition: selection
falsepositives:
    - Legitimate admin actions
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-24712 CSRF Radius Blocks"; flow:to_server,established; content:"POST"; http_method; content:"admin-ajax.php"; http_uri; content:"action=radius_blocks_"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Plugin: Deactivate and delete the Radius Blocks plugin from the WordPress admin dashboard until a patch is released.
  2. Review Site Integrity: Check for unauthorized changes to plugin settings or injected content.
  3. Update WordPress Core: Ensure WordPress is updated to the latest version for built-in security improvements.

Long-Term Mitigation:

  • Monitor the plugin’s official page for updates and apply patches immediately.
  • Implement a Web Application Firewall (WAF) with CSRF protection rules.
  • Enforce the use of nonces in all custom plugin development.
  • Conduct regular security audits of third-party plugins.

Workaround (if plugin must remain active):

  • Add a custom function to the theme’s functions.php to validate nonces on all AJAX requests:
add_action('wp_ajax_radius_blocks_update_settings', 'custom_csrf_check', 1);
function custom_csrf_check() {
    if (!check_ajax_referer('radius_blocks_nonce', 'nonce', false)) {
        wp_die('CSRF validation failed.');
    }
}

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.html:"wp-content/plugins/radius-blocks"

💣 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-2025-24712/ · 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.