CVE-2026-14989: Cookie Banner for GDPR / CCPA <= 4.4.1 - Unauthenticated Stored Cross-Site Scripting via 'wpl_user_preference' Parameter
The Cookie Banner for GDPR / CCPA – WPLP Cookie Consent plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'wpluserpreference' parameter in all versions up to, and including, 4.4.1 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The consent-logging AJAX endpoint is registered for unauthenticated users and its required nonce (wplconsentloggingnonce) is publicly emitted via wplocalizescript on the frontend, meaning any unauthenticated site visitor can plant a payload without any prior authentication or privileged access.
Affected Software
Event History
Frequently Asked Questions
Which deployments should be considered exposed?
WordPress sites running the Cookie Banner for GDPR / CCPA – WPLP Cookie Consent plugin in versions up to and including 4.4.1 should be considered affected.
Does an attacker need a WordPress account or elevated privileges?
No. The vulnerable consent-logging AJAX endpoint is available to unauthenticated users, so an unauthenticated site visitor can submit a payload without prior authentication or privileged access.
Is the required request nonce a meaningful barrier to exploitation?
No. The required wpl_consent_logging_nonce is publicly emitted on the frontend through wp_localize_script, allowing unauthenticated visitors to obtain it.
When would a planted payload execute?
The injected script executes when a user accesses a page containing the stored payload. The issue can affect confidentiality and integrity, while no availability impact is indicated by the supplied vector.