WPBakery Page Builder for WordPress <= 6.4 - Authenticated (Contributor+) Stored Cross-Site Scripting
Strategic Overview
- Status
- Patched in 6.4.1
- Affected Plugin
- WPBakery Page Builder
- Affected Version
<= 6.4- CVSS
- 6.4Medium
- Weakness type
- CWE-79 · Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
- CVE
CVE-2020-28650
At a glance
CVE-2020-28650 is a medium-severity Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in the WPBakery Page Builder WordPress plugin, affecting versions <= 6.4. It carries a CVSS score of 6.4 (reachable over the network; low attack complexity). Exploitation requires an authenticated account at Contributor level or above. The issue is fixed in version 6.4.1; sites on affected versions should update now. Disclosed October 2020, reported by Chloe Chamberland.
Vulnerability Overview
The WPBakery plugin for WordPress, in versions 6.4 and below, was designed with a flaw that could give users with contributor and author level roles the ability to inject malicious JavaScript into pages and posts. This flaw also gave these users the ability to edit other users’ posts. The plugin explicitly disabled any default post HTML filtering checks in the saveAjaxFe function using kses_remove_filters();. This meant that any user with access to the WPBakery builder could inject HTML and JavaScript anywhere in a post using the page builder.
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 interaction from a victim user.
CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
WPBakery Page Builder <= 6.4 carries this weakness at kses_remove_filters(), and reaching it takes an account at Contributor level or above. Cross-site scripting happens when input from a request is written into a page without being escaped for the context it lands in, so the browser parses attacker-supplied text as markup or script.
Injected script runs with the privileges of whoever views the affected page, which is how these flaws turn into administrator session theft, silent account creation or persistent backdoors in page content. For WPBakery Page Builder the fix is 6.4.1: builds <= 6.4 are affected, anything from 6.4.1 onward is not.
Remediation
Update to version 6.4.1, or a newer patched version
How does WordSec protect against this?
An attacker needs Contributor access first, so the firewall sees the attempt as traffic from a logged-in account: WordSec's web application firewall inspects request payloads before WordPress loads them. None of that substitutes for the fix: WPBakery Page Builder 6.4.1 closes this, and updating the plugin is the step that ends it.
- Firewall
- Alerts
External References
Related records
Same weakness class
Other vulnerabilities in WPBakery Page Builder
- 8.8CVE-2024-5709: WPBakery <= 7.7 Local File Inclusion
CVE-2024-5709 - 6.4CVE-2025-11161: WPBakery Page Builder <= 8.6.1 Stored XSS
CVE-2025-11161 - 6.4CVE-2025-11160: WPBakery Page Builder <= 8.6.1 Stored XSS
CVE-2025-11160 - 6.4CVE-2025-4968: WPBakery Page Builder <= 8.4.1 Stored XSS
CVE-2025-4968 - 6.4CVE-2025-4965: WPBakery Page Builder <= 8.4.1 Stored XSS
CVE-2025-4965 - 6.4CVE-2024-5708: WPBakery <= 7.7 Stored Cross-Site Scripting
CVE-2024-5708 - 6.4CVE-2024-5265: WPBakery Page Builder <= 7.6 Stored XSS
CVE-2024-5265 - 6.4CVE-2024-1841: WPBakery Visual Composer <= 7.5 Stored XSS
CVE-2024-1841
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C