CVE-2026-9179: WP Forms Connector SQL Injection – Unauthenticated Data Exfiltration
The WP Forms Connector plugin for WordPress contains a SQL injection vulnerability that allows unauthenticated attackers to extract sensitive data from the WordPress database. The flaw exists in how the plugin handles the 'order' parameter in a REST API endpoint, failing to properly sanitize user input before using it in database queries. An attacker can craft a malicious request to inject additional SQL commands and read unauthorized information from the database.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Weaknesses (CWE)
- CWE-89
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-06-25
NVD description (verbatim)
The WP Forms Connector plugin for WordPress is vulnerable to SQL Injection via the 'order' parameter of the /wp-json/wp/v3/post/list REST endpoint in versions up to and including 1.8. This is due to insufficient escaping on the user-supplied 'order' parameter (read directly from $_GET['order'] into $shorting) and the lack of sufficient preparation on the existing SQL query in the listPost() function, where the value is concatenated unquoted into the ORDER BY clause and executed via $wpdb->get_results() without $wpdb->prepare(). The endpoint is registered with permission_callback '__return_true' and performs only a broken header-based check that validates the supplied 'Username' corresponds to an administrator account while never verifying the 'Password'. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
4 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-9179 is a SQL injection vulnerability in WP Forms Connector versions up to 1.8, affecting the /wp-json/wp/v3/post/list REST endpoint. The vulnerability stems from two security failures: (1) the 'order' parameter is read directly from $_GET without sufficient escaping and concatenated unquoted into an ORDER BY clause, and (2) the query is executed via $wpdb->get_results() without using $wpdb->prepare(), which would safely parameterize the input. The endpoint registers with permission_callback '__return_true', and implements a flawed authentication check that only validates the 'Username' header against administrator accounts while completely ignoring the 'Password' header. This broken authentication combined with the unescaped SQL parameter enables unauthenticated attackers to bypass access controls and execute arbitrary SQL queries.
Business impact
This vulnerability enables confidentiality breaches at scale. An attacker can extract sensitive database contents including user credentials, private customer data, posts, comments, and custom post meta fields without any authentication. For WordPress installations storing PII, financial data, or business-critical information, this represents a direct path to data theft. The attack requires no user interaction and can be automated, making it attractive for broad reconnaissance campaigns. Organizations using this plugin face immediate risk of data exfiltration.
Affected systems
WP Forms Connector plugin versions up to and including 1.8 are affected. The vulnerability is present in the /wp-json/wp/v3/post/list REST endpoint, which is exposed by default on any WordPress installation where the plugin is active. Any WordPress site running a vulnerable version of this plugin is at risk, regardless of other security configurations, because the endpoint is publicly accessible and authentication is ineffective.
Exploitability
Exploitability is high. The attack vector is network-based, requires no authentication, no user interaction, and no special configuration. The vulnerable endpoint accepts GET requests with a malicious 'order' parameter that can inject SQL directly into the query. An attacker needs only to craft a properly formed HTTP request—no complex setup or specialized tools are required. The broken header-based authentication provides no real obstacle since the 'Password' validation is absent. Public proof-of-concept information or automated scanner rules will likely emerge quickly, making this vulnerability a priority target for threat actors.
Remediation
Immediate action: Update WP Forms Connector to a patched version beyond 1.8 (verify the specific patch version against the vendor's security advisory). Until patching is possible, disable the plugin or restrict access to the /wp-json/wp/v3/ REST endpoint via Web Application Firewall rules or .htaccess. Additionally, audit your WordPress database for suspicious activity patterns that correlate with the vulnerability's publication date.
Patch guidance
Contact the WP Forms Connector vendor or check their official security advisory for the patched version number. Once available, update the plugin through the WordPress admin dashboard or via WP-CLI. Verify that the update version is explicitly documented as addressing SQL injection in the /wp-json/wp/v3/post/list endpoint. After patching, confirm the plugin is active and test the REST endpoint to ensure the vulnerability is remediated. Monitor plugin changelogs going forward.
Detection guidance
Monitor access logs for requests to /wp-json/wp/v3/post/list with unusual 'order' parameter values, especially those containing SQL keywords (UNION, SELECT, WHERE, OR, AND). Watch for requests with 'Username' headers set to known administrator accounts but missing or invalid 'Password' values. Set up WAF rules to block requests with SQL injection patterns in query parameters. Enable WordPress security logging plugins that track REST API access. Search database logs for unexpected queries initiated around the published date of this CVE.
Why prioritize this
This vulnerability scores 7.5 (HIGH) on CVSS 3.1 due to its network accessibility, lack of authentication requirement, and high-impact confidentiality breach potential. Although integrity and availability are not directly affected, the unauthenticated data exfiltration capability places it in the upper-priority tier. Organizations should treat this as a critical patch urgency because (1) it affects a popular plugin, (2) exploitation is trivial, (3) no user interaction is needed, and (4) the impact—database exfiltration—is severe.
Risk score, explained
The CVSS 3.1 score of 7.5 (HIGH, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) reflects a network-accessible vulnerability with low attack complexity, no privileges required, no user interaction, and high confidentiality impact. The scope remains unchanged (other systems are not directly compromised), and integrity and availability are unaffected because the attack is read-only. The HIGH severity is driven primarily by the unrestricted access and full database confidentiality compromise.
Frequently asked questions
Can this vulnerability be exploited from the internet without accessing our internal network?
Yes. The /wp-json/wp/v3/post/list endpoint is publicly accessible over HTTP/HTTPS by default. An attacker anywhere on the internet can craft a malicious GET request to your WordPress site and inject SQL queries to extract data. No internal network access is required.
Do attackers need valid WordPress credentials to exploit this?
No. The endpoint's authentication check is broken—it validates the 'Username' header against administrator accounts but never checks the 'Password' header. An attacker can simply set the 'Username' header to any administrator name (often publicly known or enumerable) without providing a valid password and bypass authentication entirely.
What data is at risk if we're running this vulnerable plugin?
All data in your WordPress database is potentially at risk. An attacker can use SQL injection to extract user credentials, customer information, private posts, comments, plugin settings, and any custom post metadata. The scope of exposure depends on what sensitive information your WordPress installation stores.
If we disable the plugin, are we protected?
Yes. Disabling the plugin removes the vulnerable REST endpoint. However, you should still update to a patched version before re-enabling it, and audit your database access logs to check for evidence of prior exploitation.
This analysis is based on the CVE description and CVSS vector as of the publication date. Specific patch version numbers and remediation steps should be verified against the vendor's official security advisory. This write-up does not constitute legal advice or a guarantee of security. Organizations should conduct their own risk assessment and testing in a non-production environment before deploying patches. No exploit code or detailed weaponization techniques are provided in this document. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20062HIGHSQL Injection in Simply Poll 1.4.1 WordPress Plugin - Unauthenticated Data Theft
- CVE-2016-20063HIGHSQL Injection in Single Personal Message 1.0.3 – Credential & Data Theft Risk
- CVE-2016-20065HIGHUnauthenticated SQL Injection in Product Catalog 8 WordPress Plugin
- CVE-2016-20068HIGHUnauthenticated SQL Injection in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2016-20069HIGHUnauthenticated SQL Injection in WordPress Booking Calendar Contact Form 1.0.23
- CVE-2016-20071HIGHCritical SQL Injection in WordPress 404 Redirection Manager Plugin v1.0
- CVE-2016-20072HIGHBBS e-Franchise WordPress Plugin SQL Injection – Remote Data Exfiltration Risk
- CVE-2016-20073HIGHSQL Injection in Answer My Question 1.3 WordPress Plugin