CVE-2024-11188
Executive Summary
CVE-2024-11188 is a reflected cross-site scripting (XSS) vulnerability in the Formidable Forms WordPress plugin (by Strategy11), affecting all versions up to and including 6.16.1.2. The flaw resides in the Custom HTML Form parameters, where insufficient input sanitization and output escaping allow unauthenticated attackers to inject arbitrary web scripts. Successful exploitation requires user interaction (e.g., clicking a crafted link), leading to script execution in the victim’s browser within the context of the WordPress site. The CVSS score is 6.1 (Medium), with a low EPSS probability (0.0%) indicating limited active exploitation in the wild. No public exploit code or patch details are currently available.
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. Users are advised to monitor the plugin’s update channel and apply patches as soon as they become available. No third-party package manager (NPM, PyPI, Go, Ruby) is involved.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – Exploitable remotely.
- Attack Complexity (AC): Low (L) – No special conditions required.
- Privileges Required (PR): None (N) – Unauthenticated.
- User Interaction (UI): Required (R) – Victim must click a link.
- Scope (S): Changed (C) – Impact extends beyond vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited script injection.
- Availability (A): None (N) – No denial of service.
Threat Level: Medium. Exploitation requires user interaction, but the attack surface is broad due to unauthenticated access.
Deep Dive & Mechanics
The vulnerability is a POST-Based Reflected XSS in the Custom HTML Form parameters of Formidable Forms. The plugin fails to properly sanitize user-supplied input in the frm_custom_html parameter (or similar) before reflecting it in the response. An attacker can craft a malicious URL or form submission that includes JavaScript payloads. When a victim clicks the link or submits the form, the payload executes in the context of the WordPress site, potentially allowing session hijacking, credential theft, or defacement.
Root Cause: Insufficient input validation and output escaping in the plugin’s handling of custom HTML form fields. The plugin likely uses echo or similar functions without applying WordPress’s esc_html() or wp_kses_post().
Attack Vector: POST-based reflected XSS via crafted HTTP requests to endpoints like /wp-admin/admin-ajax.php or form submission handlers.
Vulnerable vs. Patched Code
Vulnerable Code (≤ 6.16.1.2):
// Example vulnerable snippet (hypothetical)
function render_custom_html($atts) {
$html = $atts['frm_custom_html'];
echo $html; // No sanitization
}
Patched Code (hypothetical):
function render_custom_html($atts) {
$html = $atts['frm_custom_html'];
echo esc_html($html); // Proper escaping
}
Note: No official patch is available yet. The above is a best-practice example.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress site with Formidable Forms ≤ 6.16.1.2.
- Attacker-controlled server to host payload (optional).
Exploit Steps:
- Craft a malicious URL or form POST request with a JavaScript payload in the
frm_custom_htmlparameter. - Deliver the link to the victim via phishing email, social media, or other means.
- Victim clicks the link, triggering the XSS.
Example Payload (POST request):
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target-site.com
Content-Type: application/x-www-form-urlencoded
action=frm_forms_preview&frm_custom_html=<script>alert('XSS')</script>
Note: No public exploit code is available; this is a conceptual example.
Blue Team (Detection & Defense)
Detection:
- Monitor for unusual POST requests to
/wp-admin/admin-ajax.phpwithfrm_custom_htmlparameters containing script tags or event handlers. - Use WAF rules to block common XSS patterns (e.g.,
<script>,onerror=).
Defense:
- Disable the Custom HTML Form feature if not needed.
- Apply input validation and output escaping via WordPress functions.
- Keep the plugin updated.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/wp-admin/admin-ajax.phpwithaction=frm_forms_previewandfrm_custom_htmlcontaining<script>oron*attributes. - Referer headers from suspicious domains.
- POST requests to
- Host IOCs:
- Unexpected JavaScript in WordPress database
wp_postmetaorwp_optionstables. - Modified plugin files (e.g.,
formidable/classes/controllers/FrmFormsController.php).
- Unexpected JavaScript in WordPress database
- Log IOCs:
- Access logs showing repeated POST requests to admin-ajax.php with unusual parameters.
Detection Engineering
YARA Rule
rule CVE_2024_11188_Formidable_XSS {
meta:
description = "Detects POST-based reflected XSS attempts against Formidable Forms plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-11188"
strings:
$payload1 = /frm_custom_html=.*<script/i
$payload2 = /frm_custom_html=.*onerror/i
$payload3 = /frm_custom_html=.*onload/i
condition:
any of them
}
Sigma Rule
title: CVE-2024-11188 Formidable Forms Reflected XSS
id: 8a3f7c2e-5d1b-4a9f-8c6e-2b1d3f4a5c6e
status: experimental
description: Detects POST requests with XSS payloads in frm_custom_html parameter
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-query|contains: "frm_custom_html"
cs-uri-query|re: "(<script|onerror|onload|javascript:)"
condition: selection
falsepositives:
- Legitimate use of custom HTML forms with safe content
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-11188 Formidable Forms Reflected XSS Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"frm_custom_html"; http_client_body; pcre:"/(<script|onerror|onload|javascript:)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable Custom HTML Forms in the plugin settings if not required.
- Apply a WAF rule to block requests containing
frm_custom_htmlwith script-like patterns. - Monitor logs for exploitation attempts.
Long-Term Fix:
- Update the plugin to a patched version once released by Strategy11.
- If no patch is available, consider replacing the plugin with an alternative.
Workaround:
- Add the following code to the theme’s
functions.phpto sanitize the parameter:
add_filter('frm_custom_html', 'sanitize_custom_html', 10, 1);
function sanitize_custom_html($html) {
return wp_kses_post($html);
}
Valters IT – Securing digital frontiers, one CVE at a time.
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.