CVE-2025-2940 Overview
The Ninja Tables – Easy Data Table Builder plugin for WordPress contains a Server-Side Request Forgery (SSRF) vulnerability in all versions up to and including 5.0.18. The vulnerability exists in the args[url] parameter, which allows unauthenticated attackers to make arbitrary web requests originating from the web application server. This flaw can be exploited to query and modify information from internal services that would otherwise be inaccessible from the external network.
Critical Impact
Unauthenticated attackers can leverage this SSRF vulnerability to access internal network resources, potentially exposing sensitive data from cloud metadata services, internal APIs, and other protected services.
Affected Products
- Ninja Tables WordPress Plugin versions up to and including 5.0.18
- WordPress installations with vulnerable Ninja Tables plugin
- WPManageNinja Ninja Tables (wpmanageninja:ninja_tables)
Discovery Timeline
- 2025-06-27 - CVE-2025-2940 published to NVD
- 2025-07-07 - Last updated in NVD database
Technical Details for CVE-2025-2940
Vulnerability Analysis
This vulnerability is classified as CWE-918: Server-Side Request Forgery (SSRF). The flaw resides in the HTTP Client component of the Ninja Tables plugin, specifically in the file located at vendor/wpfluent/framework/src/WPFluent/Http/Client.php around line 268. The vulnerability allows unauthenticated remote attackers to craft malicious requests through the args[url] parameter, effectively using the WordPress server as a proxy to reach internal network resources.
SSRF vulnerabilities in WordPress plugins are particularly dangerous because WordPress installations often run within trusted network zones that have access to internal services, databases, and cloud infrastructure metadata endpoints. An attacker exploiting this vulnerability could potentially access AWS/Azure/GCP metadata services, internal REST APIs, database admin interfaces, and other sensitive resources that rely on network-level access controls.
Root Cause
The root cause of this vulnerability is insufficient validation and sanitization of the URL parameter passed through args[url]. The HTTP Client component fails to properly restrict the destination of outbound HTTP requests, allowing attackers to specify arbitrary URLs including internal IP addresses, localhost, and cloud metadata endpoints. The vulnerable code does not implement proper allowlisting of permitted domains or blocking of internal IP ranges (RFC 1918 addresses, loopback addresses, link-local addresses, etc.).
Attack Vector
The attack can be performed over the network without any authentication requirements. An attacker sends a specially crafted request to the vulnerable WordPress endpoint, specifying a target URL in the args[url] parameter. The WordPress server then initiates an HTTP request to the attacker-specified destination, returning the response to the attacker. This effectively bypasses network access controls and allows enumeration of internal services.
The vulnerability enables attackers to probe internal network infrastructure, access cloud instance metadata (potentially leaking IAM credentials), interact with internal APIs, and potentially perform data exfiltration through the compromised WordPress server acting as a request proxy.
Detection Methods for CVE-2025-2940
Indicators of Compromise
- Unusual outbound HTTP requests from the WordPress server to internal IP ranges (10.x.x.x, 172.16-31.x.x, 192.168.x.x)
- Requests to cloud metadata endpoints (169.254.169.254) originating from the web server
- Unexpected connections to localhost or loopback addresses from WordPress processes
- Web access logs showing repeated requests to Ninja Tables endpoints with suspicious args[url] parameters
Detection Strategies
- Monitor web application firewall (WAF) logs for requests containing internal IP addresses or cloud metadata URLs in query parameters
- Implement egress filtering alerts for the WordPress server attempting connections to non-standard destinations
- Review WordPress access logs for patterns of requests to table-related endpoints with URL parameters pointing to internal resources
- Deploy network intrusion detection rules to identify SSRF attack patterns targeting the vulnerable parameter
Monitoring Recommendations
- Enable verbose logging for outbound HTTP connections from WordPress servers
- Configure cloud security monitoring to alert on metadata service access attempts
- Implement network segmentation monitoring to detect lateral movement attempts via SSRF
- Set up alerting for failed authentication attempts to internal services that may indicate SSRF probing
How to Mitigate CVE-2025-2940
Immediate Actions Required
- Update Ninja Tables plugin to version 5.0.19 or later immediately
- Audit WordPress server logs for any signs of exploitation
- Review network access controls to limit outbound connections from web servers
- Implement WAF rules to block requests with internal URLs in the args[url] parameter
Patch Information
The vulnerability has been addressed in Ninja Tables version 5.0.19. The fix can be reviewed in the WordPress Plugin Changeset. The updated HTTP Client code is available at the Ninja Tables 5.0.19 Repository. Additional technical details are available in the Wordfence Vulnerability Report.
Workarounds
- If immediate patching is not possible, consider temporarily deactivating the Ninja Tables plugin until the update can be applied
- Implement network-level egress filtering to prevent the WordPress server from connecting to internal IP ranges
- Deploy a Web Application Firewall (WAF) with rules to block SSRF patterns in the vulnerable parameter
- Use cloud provider security groups to restrict metadata service access from web application instances
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


