CVE-2025-69345
Executive Summary
CVE-2025-69345 is a Missing Authorization vulnerability in the Post and Page Builder by BoldGrid WordPress plugin, affecting versions up to and including 1.27.9. This flaw allows an unauthenticated attacker to exploit incorrectly configured access control security levels, potentially leading to unauthorized actions within the WordPress ecosystem. The vulnerability has a CVSS score of 4.3 (Medium), indicating a moderate risk primarily impacting data integrity. No public proof-of-concept (PoC) or exploit code is currently available, and the patch status remains unknown.
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 resides in a WordPress plugin, which is part of the broader WordPress ecosystem. The plugin is distributed via the official WordPress plugin repository and can be installed directly from the WordPress admin dashboard. The lack of a known patch means that users of this plugin are currently exposed to potential exploitation. Organizations should treat this as a supply chain risk, as the plugin is a third-party component integrated into their WordPress installations.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) - The vulnerability can be exploited remotely over the network.
- Attack Complexity (AC): Low (L) - No special conditions or complex attack sequences are required.
- Privileges Required (PR): None (N) - The attacker does not need any authentication.
- User Interaction (UI): None (N) - No user action is required for exploitation.
- Scope (S): Unchanged (U) - The impact is confined to the vulnerable component.
- Confidentiality (C): None (N) - No data confidentiality is affected.
- Integrity (I): Low (L) - The attacker can modify some data or resources.
- Availability (A): None (N) - No impact on system availability.
Threat Level: Medium. The low EPSS score (0.0%) suggests that exploitation is not currently widespread, but the lack of a patch increases the risk over time.
Deep Dive & Mechanics
The vulnerability stems from a Missing Authorization check (CWE-862) in the post-and-page-builder plugin. Specifically, the plugin fails to properly verify that a user has the necessary permissions before allowing access to certain administrative functions or AJAX actions. This allows an unauthenticated attacker to send crafted HTTP requests to the WordPress site, potentially triggering actions that should be restricted to authenticated users with specific roles (e.g., administrators or editors).
The affected functionality likely involves the plugin's AJAX handlers or REST API endpoints that are used for building and managing posts/pages. Without proper capability checks, an attacker could:
- Modify plugin settings.
- Create or delete posts/pages.
- Execute other administrative operations.
The vulnerability is exploitable via standard HTTP requests, making it accessible to any attacker who can reach the WordPress site.
Vulnerable vs. Patched Code
Since no patch is currently available, a direct code comparison cannot be provided. However, based on the vulnerability type, the fix would involve adding proper capability checks (e.g., current_user_can('edit_posts') or wp_verify_nonce()) to all AJAX handlers and REST API endpoints that perform sensitive operations.
Vulnerable Code Example (Hypothetical):
add_action('wp_ajax_boldgrid_save_post', 'boldgrid_save_post_callback');
add_action('wp_ajax_nopriv_boldgrid_save_post', 'boldgrid_save_post_callback');
function boldgrid_save_post_callback() {
// Missing capability check
$post_id = $_POST['post_id'];
// ... save post logic
}
Patched Code Example (Hypothetical):
add_action('wp_ajax_boldgrid_save_post', 'boldgrid_save_post_callback');
function boldgrid_save_post_callback() {
if (!current_user_can('edit_posts')) {
wp_die('Unauthorized');
}
$post_id = $_POST['post_id'];
// ... save post logic
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Install WordPress (latest version) on a local or cloud server.
- Install the Post and Page Builder by BoldGrid plugin version 1.27.9.
- Ensure the site is accessible over the network.
Exploitation Steps:
- Identify the vulnerable AJAX action or REST endpoint. Common patterns include
wp_ajax_boldgrid_*or/wp-json/boldgrid/v1/*. - Send a crafted HTTP request without authentication:
curl -X POST http://target/wp-admin/admin-ajax.php \ -d 'action=boldgrid_save_post&post_id=1&content=malicious' - Observe that the request is processed without requiring a valid nonce or user capability.
Note: No public exploit code is available. The above is a hypothetical example based on common patterns.
Blue Team
Detection:
- Monitor for unusual AJAX requests to
admin-ajax.phpor REST API endpoints associated with the BoldGrid plugin. - Look for requests lacking a valid
_wpnonceparameter orX-WP-Nonceheader. - Alert on repeated attempts to access administrative functions without authentication.
Hunting:
- Search web server logs for patterns like
action=boldgrid_or/wp-json/boldgrid/. - Correlate with IP addresses that show multiple failed authentication attempts.
Indicators of Compromise (IOCs)
- Network:
- HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=boldgrid_*parameters. - HTTP requests to
/wp-json/boldgrid/v1/*endpoints.
- HTTP POST requests to
- File:
- Modified plugin files in
/wp-content/plugins/post-and-page-builder/. - Unexpected posts or pages created by unauthenticated users.
- Modified plugin files in
- Log:
- Web server logs showing 200 responses to unauthenticated AJAX requests to BoldGrid actions.
Detection Engineering
YARA Rule
rule CVE_2025_69345_BoldGrid_Missing_Auth {
meta:
description = "Detects exploitation attempts of CVE-2025-69345 in BoldGrid Post and Page Builder"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-69345"
strings:
$ajax_action = /action=boldgrid_[a-z_]+/
$rest_endpoint = /\/wp-json\/boldgrid\/v1\//
condition:
any of them
}
Sigma Rule
title: CVE-2025-69345 - BoldGrid Missing Authorization Exploitation
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests targeting BoldGrid plugin without proper authentication
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains:
- 'action=boldgrid_'
- '/wp-json/boldgrid/v1/'
condition: selection
falsepositives:
- Legitimate admin actions (requires correlation with authentication)
level: medium
Suricata Rule
alert http any any -> any any (
msg:"CVE-2025-69345 - BoldGrid Missing Authorization Exploitation Attempt";
flow:to_server,established;
content:"POST";
http_method;
content:"/wp-admin/admin-ajax.php";
http_uri;
content:"action=boldgrid_";
http_client_body;
sid:1000001;
rev:1;
reference:cve,2025-69345;
classtype:attempted-admin;
priority:2;
)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released. This is the most effective mitigation.
- If disabling is not possible, implement a Web Application Firewall (WAF) rule to block requests to BoldGrid AJAX actions from unauthenticated users.
- Monitor logs for exploitation attempts and block offending IPs.
Long-Term Fix:
- Apply the official patch once released by the vendor.
- Consider replacing the plugin with an alternative that has a better security track record.
Valters IT Signature:
Report generated by Valters IT DevSecOps Intelligence Unit. CVE-2025-69345 | Missing Authorization in BoldGrid Post and Page Builder Classification: Medium | Status: Unpatched
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.