WP CTA <= 2.2.2 - Unauthenticated Time-Based Blind SQL Injection via 'fildname' Parameter
Strategic Overview
- Status
- Patched in 2.3.0
- Affected Version
<= 2.2.2- CVSS
- 7.5High
- Weakness type
- CWE-89 · Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
- CVE
CVE-2026-4661
At a glance
CVE-2026-4661 is a high-severity Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in the WP CTA WordPress plugin, affecting versions <= 2.2.2. It carries a CVSS score of 7.5 (reachable over the network; low attack complexity; high confidentiality impact). Exploitation requires no authentication. The issue is fixed in version 2.3.0; sites on affected versions should update now. Disclosed July 2026, reported by daroo.
Vulnerability Overview
The WP CTA – Sticky CTA Builder, Generate Leads, Promote Sales plugin for WordPress is vulnerable to time-based blind SQL Injection via the 'fildname' parameter in all versions up to, and including, 2.2.2. This is due to insufficient escaping of user-supplied column names in the ajaxCheck() method and lack of preparation in the $wpdb->update() call. The vulnerability is compounded by the complete absence of authorization checks and the endpoint being registered for unauthenticated users via wp_ajax_nopriv_. This makes it possible for unauthenticated attackers to inject arbitrary SQL queries and extract sensitive information from the database via time-based blind SQL injection techniques, including administrator password hashes.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality.
CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
WP CTA <= 2.2.2 carries this weakness at fildname, and reaching it takes no account at all. SQL injection happens when request data is concatenated into a query instead of being bound as a parameter, letting an attacker change the structure of the statement rather than just its values.
A working injection can read any table the database user can see, which on a WordPress install means user records, password hashes and session or API secrets stored in options. For WP CTA the fix is 2.3.0: builds <= 2.2.2 are affected, anything from 2.3.0 onward is not.
Remediation
Update to version 2.3.0, or a newer patched version
How does WordSec protect against this?
Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. None of that substitutes for the fix: WP CTA 2.3.0 closes this, and updating the plugin is the step that ends it.
- Firewall
- Login Security
- Alerts
External References
Related records
Other vulnerabilities in WP CTA – Call Now Button, Sticky Button & Call to Action Builder
- 6.5CVE-2023-46644: WordPress CTA <= 1.5.8 Missing Authorization
CVE-2023-46644 - 5.3CVE-2026-22459: WP CTA Missing Authorization
CVE-2026-22459 - 5.3CVE-2025-8152: WP CTA Unauthenticated Sticky Status Update
CVE-2025-8152 - 4.9CVE-2026-6089: WP CTA <= 2.1.2 Server-Side Request Forgery
CVE-2026-6089 - 4.3CVE-2025-53270: WordPress CTA <= 1.7.0 Cross-Site Request Forgery
CVE-2025-53270 - 4.3Appsero <= 1.2.1 Missing Authorization
- 4.3CVE-2022-47150: Appsero <= 1.2.0 Cross-Site Request Forgery
CVE-2022-47150
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C