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

CVE-2025-10498

CVE-2025-10498 Cross-Site Request Forgery in Ninja forms
📅 PUBLISHED: 2025-09-27 02:25 UTC 🔄 UPDATED: 2026-08-12 14:52 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.01%
👁️
0.01% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1204
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 4.3
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: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-10498 identifies a Cross-Site Request Forgery (CSRF) vulnerability in the Ninja Forms – The Contact Form Builder That Grows With You WordPress plugin, affecting versions up to and including 3.12.0. The vulnerability stems from missing or incorrect nonce validation when exporting CSV files. This flaw allows an unauthenticated attacker to trick a logged-in administrator into performing unintended actions, such as deleting exported CSV files, by luring them to a crafted link or page. The CVSS score is 4.3 (Medium), with a low EPSS score of 0.0%, indicating a low probability of exploitation in the wild. No public proof-of-concept or exploit code is currently available. As a WordPress plugin vulnerability, this issue is specific to the WordPress ecosystem and does not involve server-level components like Apache or Nginx.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Score: 4.3 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
  • Attack Vector: Network (AV:N) – The attack can be launched remotely.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: None (PR:N) – The attacker does not need authentication.
  • User Interaction: Required (UI:R) – The victim (administrator) must click a link or visit a malicious page.
  • Scope: Unchanged (S:U) – The vulnerability does not affect other components.
  • Confidentiality Impact: None (C:N) – No data exposure.
  • Integrity Impact: Low (I:L) – Unauthorized deletion of CSV files is possible.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. The requirement for user interaction reduces the immediate risk, but the potential for data loss (deletion of exported CSV files) makes it a concern for administrators.

Deep Dive & Mechanics

The vulnerability resides in the CSV export functionality of Ninja Forms. When an administrator exports form submissions as a CSV file, the plugin generates a temporary file on the server. The deletion of these files is triggered via a request that lacks proper CSRF protection (nonce validation). An attacker can craft a malicious link or embed a request in a third-party site that, when clicked by an authenticated administrator, sends a forged request to delete the CSV file. The missing nonce check means the server cannot distinguish between a legitimate request from the admin and a forged one.

WordPress Context: This is a classic CSRF issue within the WordPress plugin ecosystem. The plugin fails to implement WordPress's built-in nonce mechanism for the CSV deletion action, allowing cross-origin requests to be processed without verification.

Vulnerable vs. Patched Code

Vulnerable Code (<= 3.12.0): The CSV deletion endpoint likely lacks a nonce check. For example:

// In vulnerable version, no nonce verification
add_action('wp_ajax_ninja_forms_delete_csv', 'ninja_forms_delete_csv');
function ninja_forms_delete_csv() {
    $file_path = sanitize_text_field($_POST['file_path']);
    if (file_exists($file_path)) {
        unlink($file_path);
    }
    wp_die();
}

Patched Code (Hypothetical): The patched version would include nonce verification:

add_action('wp_ajax_ninja_forms_delete_csv', 'ninja_forms_delete_csv');
function ninja_forms_delete_csv() {
    // Verify nonce
    if (!wp_verify_nonce($_POST['_wpnonce'], 'ninja_forms_delete_csv_nonce')) {
        wp_die('CSRF validation failed.');
    }
    $file_path = sanitize_text_field($_POST['file_path']);
    if (file_exists($file_path)) {
        unlink($file_path);
    }
    wp_die();
}

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • A WordPress site with Ninja Forms <= 3.12.0 installed and activated.
  • An administrator account logged in.

Exploitation Steps:

  1. Craft a malicious link that triggers CSV deletion. For example:
    <a href="http://target-site.com/wp-admin/admin-ajax.php?action=ninja_forms_delete_csv&file_path=/path/to/exported.csv">Click here</a>
    
  2. Deliver the link to the administrator via email, social engineering, or a compromised third-party site.
  3. When the admin clicks, the request is sent with their cookies, and the CSV file is deleted.

Note: No public exploit code is available, so this is a conceptual demonstration.

Blue Team (Defense & Detection)

Defensive Measures:

  • Update Plugin: Apply the patch as soon as it becomes available.
  • CSRF Protection: Ensure all admin actions use WordPress nonces.
  • User Awareness: Train administrators to avoid clicking suspicious links.
  • Web Application Firewall (WAF): Deploy rules to block requests to admin-ajax.php with unexpected parameters.

Detection:

  • Monitor logs for admin-ajax.php requests with action=ninja_forms_delete_csv and no nonce parameter.
  • Alert on unusual file deletion patterns in the uploads directory.

Indicators of Compromise (IOCs)

  • Network:
    • HTTP requests to /wp-admin/admin-ajax.php with action=ninja_forms_delete_csv and file_path parameter.
    • Referer header from an unexpected domain (e.g., attacker-controlled site).
  • File System:
    • Unexpected deletion of CSV files in /wp-content/uploads/ninja-forms-tmp/ or similar directories.
  • Logs:
    • WordPress debug log entries showing unlink() calls without nonce verification.

Detection Engineering

YARA Rule

rule CVE_2025_10498_CSRF_NinjaForms {
    meta:
        description = "Detects vulnerable Ninja Forms CSV deletion without nonce"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-10498"
    strings:
        $ajax_action = "ninja_forms_delete_csv"
        $no_nonce = "wp_verify_nonce" nocase
    condition:
        $ajax_action and not $no_nonce
}

Sigma Rule

title: CVE-2025-10498 - Ninja Forms CSV Deletion CSRF
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CSRF vulnerability in Ninja Forms CSV deletion
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: 'action=ninja_forms_delete_csv'
    condition: selection
falsepositives:
    - Legitimate admin actions if nonce is present (but this rule assumes no nonce)
level: medium

Suricata Rule

alert http any any -> $HOME_NET any (
    msg:"CVE-2025-10498 - Ninja Forms CSV Deletion CSRF Attempt";
    flow:to_server,established;
    content:"GET"; http_method;
    content:"action=ninja_forms_delete_csv"; http_uri;
    sid:1000001;
    rev:1;
    metadata:created_at 2025_04_10, updated_at 2025_04_10;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable CSV Export: Temporarily disable the CSV export feature in Ninja Forms until a patch is applied.
  2. Restrict Access: Use .htaccess or a WAF to block direct access to admin-ajax.php for unauthenticated users (though this may break other functionality).
  3. Monitor Logs: Review server logs for suspicious admin-ajax.php requests.

Long-Term Fix:

  • Update Plugin: Apply the official patch from Ninja Forms when released (check their changelog for version > 3.12.0).
  • Implement Nonces: Ensure all admin AJAX actions use wp_verify_nonce().
  • Security Hardening: Use a WordPress security plugin that adds CSRF protection.

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

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-10498/ · 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.