CVE-2025-22759
Executive Summary
CVE-2025-22759 is a Stored Cross-Site Scripting (XSS) vulnerability in the BoldGrid Post and Page Builder plugin for WordPress (versions <= 1.27.5). This flaw allows an authenticated attacker with contributor-level privileges or higher to inject arbitrary JavaScript into the WordPress database. When an administrator or other user views the compromised page or post, the malicious script executes in their browser, potentially leading to session hijacking, credential theft, or defacement. The vulnerability stems from improper neutralization of user-supplied input within the visual drag-and-drop editor. No public exploit code or patch is currently available, making this a high-priority unpatched risk for WordPress sites using the plugin.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects a WordPress plugin distributed via the official WordPress plugin repository. Since the plugin is a third-party component, the risk extends to any site that has installed it. The lack of a patch means that all sites running version 1.27.5 or earlier are exposed. Organizations should treat this as a supply chain risk and consider disabling the plugin until a fix is released.
CVSS Breakdown & Threat Level
- CVSS Score: 6.5 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:L
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Contributor)
- User Interaction: Required (Admin viewing page)
- Scope: Changed
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: Low
Threat Level: Medium. While the CVSS score is moderate, the lack of a patch and the widespread use of WordPress elevate the real-world risk. Stored XSS can lead to full site compromise if an admin account is hijacked.
Deep Dive & Mechanics
The vulnerability exists in the post-and-page-builder plugin’s handling of user input within the drag-and-drop editor. The plugin fails to sanitize or escape HTML/JavaScript content when saving page builder blocks. An attacker with contributor access can craft a block containing malicious JavaScript. When the block is rendered for an administrator, the script executes in the context of the WordPress admin dashboard.
Root Cause: The plugin uses wp_kses or similar functions incorrectly, or bypasses them entirely for certain custom block attributes. This allows the injection of event handlers (e.g., onmouseover, onload) or <script> tags.
Attack Flow:
- Attacker logs in as a contributor.
- Creates a new page/post using the BoldGrid editor.
- Inserts a custom HTML block or modifies an existing block’s attribute to include a malicious payload.
- Saves/publishes the page.
- Administrator visits the page in the admin panel or front-end.
- Payload executes, stealing cookies or performing actions on behalf of the admin.
Vulnerable vs. Patched Code
Since no patch is available, we can only analyze the vulnerable code pattern. The vulnerable version likely uses something like:
// Vulnerable: Direct output without escaping
echo $block_content;
A patched version would use:
// Patched: Escaping output
echo esc_html( $block_content );
The plugin should also validate input on the server side using wp_kses_post or similar functions.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress site with BoldGrid Post and Page Builder <= 1.27.5
- Contributor-level account
Steps:
- Log in as a contributor.
- Create a new page and switch to the BoldGrid editor.
- Add a custom HTML block with the following payload:
<img src=x onerror="alert('XSS')"> - Save the page.
- When an admin views the page, the alert fires.
Advanced Payload (Session Hijacking):
<script>
fetch('/wp-admin/admin-ajax.php?action=your_action&cookie='+document.cookie);
</script>
Blue Team (Detection & Hardening)
Detection:
- Monitor for unusual page/post creation by low-privileged users.
- Look for HTML blocks containing event handlers or
<script>tags in the database. - Use WAF rules to block common XSS patterns.
Hardening:
- Disable the plugin until a patch is released.
- Restrict contributor roles from using the BoldGrid editor if possible.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
Indicators of Compromise (IOCs)
- File:
/wp-content/plugins/post-and-page-builder/(entire plugin directory) - Database: Rows in
wp_postsorwp_postmetacontaining<script>tags or event handlers. - Logs: Unusual AJAX requests from contributor accounts.
- Network: Outbound connections to attacker-controlled domains from admin browsers.
Detection Engineering
YARA Rule
rule CVE_2025_22759_Stored_XSS {
meta:
description = "Detects stored XSS payloads in BoldGrid plugin content"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-22759"
strings:
$xss1 = /<script[^>]*>.*<\/script>/is
$xss2 = /onerror\s*=\s*["'][^"']*["']/i
$xss3 = /onload\s*=\s*["'][^"']*["']/i
$xss4 = /onmouseover\s*=\s*["'][^"']*["']/i
condition:
any of ($xss*)
}
Sigma Rule
title: CVE-2025-22759 Stored XSS in BoldGrid Plugin
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects stored XSS attempts via BoldGrid page builder
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: wordpress
detection:
selection:
http.method: POST
http.url|contains: '/wp-admin/admin-ajax.php'
http.body|contains: 'post-and-page-builder'
keywords:
- '<script'
- 'onerror='
- 'onload='
- 'onmouseover='
condition: selection and keywords
falsepositives:
- Legitimate use of JavaScript in page builder
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-22759 Stored XSS in BoldGrid Plugin"; flow:to_server; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"post-and-page-builder"; http_client_body; pcre:"/(<script|onerror=|onload=|onmouseover=)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released.
- Review all pages/posts created by contributors for malicious content.
- Reset all user sessions to invalidate any stolen cookies.
Long-term:
- Monitor the BoldGrid plugin page for updates.
- Implement a Web Application Firewall (WAF) with XSS rules.
- Enforce the principle of least privilege for WordPress roles.
Patch: No official patch is available. Contact BoldGrid support for updates.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.