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

CVE-2025-24339

CVE-2025-24339 Supply Chain Attack in Ctrlx
📅 PUBLISHED: 2025-04-30 10:54 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.29%
👁️
0.29% probability
7.1× above the median CVE
Tier: ELEVATED
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 5.0
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
5.0
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-24339 is a medium-severity vulnerability affecting the web application component of Bosch Rexroth ctrlX OS. The flaw allows a remote unauthenticated attacker to perform web cache poisoning or Man-in-the-Middle (MitM) attacks against users of the vulnerable system by sending a crafted HTTP request. The attack requires user interaction (e.g., clicking a link) and does not directly compromise the server, but can lead to session hijacking, credential theft, or injection of malicious content into cached responses. The EPSS score is 0.0%, indicating very low exploitation activity in the wild, but the lack of a patch makes this a persistent risk for exposed systems.

⚡ 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 a package manager (NPM, PyPI, Go, Ruby). It affects the embedded web application of ctrlX OS, an industrial control platform. Supply chain risk is limited to the vendor's software distribution channels.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
  • Base Score: 5.0 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: Required (UI:R) – the victim must click a crafted link or visit a malicious page.
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: Low (C:L) – potential exposure of session tokens or cached sensitive data.
  • Integrity Impact: Low (I:L) – attacker can modify cached responses or inject content.
  • Availability Impact: None (A:N)

Threat Level: Medium. While the CVSS score is moderate, the lack of a patch and the potential for MitM attacks in industrial environments elevates the risk for organizations using ctrlX OS in exposed networks.

Deep Dive & Mechanics

The vulnerability resides in the web application component of ctrlX OS, which handles HTTP requests and responses. The exact mechanism is not publicly disclosed, but based on the description, it likely involves improper validation of HTTP headers or request parameters that influence caching behavior or TLS termination.

Web Cache Poisoning Scenario: An attacker can craft an HTTP request with a malicious header (e.g., X-Forwarded-Host, X-Original-URL, or a custom cache key) that causes the web server or a reverse proxy to cache a response containing attacker-controlled content. When subsequent users request the same resource, they receive the poisoned cache entry, which may include malicious scripts, redirects, or phishing forms.

Man-in-the-Middle (MitM) Scenario: The attacker can inject a crafted HTTP request that downgrades the connection from HTTPS to HTTP, or that modifies TLS negotiation parameters, enabling the attacker to intercept or modify traffic between the client and the server. This could be achieved via HTTP response splitting, header injection, or exploiting weak TLS configurations.

The attack is unauthenticated and requires user interaction (e.g., clicking a link or visiting a malicious site). The attacker must be on the same network or be able to intercept traffic (for MitM) or trick the user into sending a crafted request (for cache poisoning).

Vulnerable vs. Patched Code

Since no patch is available, a direct code comparison is not possible. However, based on common patterns for such vulnerabilities, the following pseudo-code illustrates the likely vulnerable logic and a potential fix.

Vulnerable Code (Python/Flask example):

@app.route('/api/data')
def get_data():
    # Directly using user-supplied header to construct cache key
    cache_key = request.headers.get('X-Cache-Key', 'default')
    cached_response = cache.get(cache_key)
    if cached_response:
        return cached_response
    # ... generate response ...
    cache.set(cache_key, response)
    return response

Patched Code (Hypothetical):

@app.route('/api/data')
def get_data():
    # Use only internal, validated parameters for cache key
    cache_key = f"{request.path}:{request.args.get('version', 'v1')}"
    # Validate and sanitize all headers before use
    if not is_valid_header(request.headers.get('X-Cache-Key')):
        abort(400)
    cached_response = cache.get(cache_key)
    if cached_response:
        return cached_response
    # ... generate response ...
    cache.set(cache_key, response)
    return response

Exploitation & Lab Setup

Red Team

Prerequisites:

  • A target running ctrlX OS with the web application exposed (e.g., https://target-ctrlx.local).
  • Attacker machine with tools like curl, Burp Suite, or mitmproxy.
  • For MitM: ability to intercept network traffic (e.g., ARP spoofing, rogue access point).

Exploitation Steps (Web Cache Poisoning):

  1. Identify a cacheable endpoint (e.g., /static/js/app.js).
  2. Send a crafted request with a malicious header:
    curl -k -H "X-Forwarded-Host: attacker.com" "https://target-ctrlx.local/static/js/app.js"
    
  3. If the server caches the response with the attacker-controlled host, subsequent users will be redirected to attacker.com when requesting the same resource.
  4. Serve a malicious payload (e.g., JavaScript for session theft) from attacker.com.

Exploitation Steps (MitM):

  1. Use mitmproxy to intercept traffic:
    mitmproxy --mode transparent --listen-port 8080
    
  2. Send a crafted HTTP request that triggers a protocol downgrade:
    curl -k -H "Upgrade-Insecure-Requests: 1" "http://target-ctrlx.local/login"
    
  3. If the server responds with a Location header pointing to an HTTP URL, the attacker can intercept the plaintext traffic.

Blue Team

Detection:

  • Monitor for unusual HTTP headers in requests, especially X-Forwarded-Host, X-Original-URL, or custom cache keys.
  • Alert on multiple requests to the same resource with varying headers from different IPs.
  • Use network monitoring to detect ARP spoofing or rogue DHCP servers (MitM precursor).

Hunting:

  • Search web server logs for requests with non-standard headers targeting cacheable resources.
  • Look for responses with unexpected Location headers or Set-Cookie values.
  • Verify TLS certificate validity and check for certificate mismatches.

Lab Setup:

  • Deploy a test instance of ctrlX OS in an isolated network.
  • Use docker or a VM to simulate the environment.
  • Tools: curl, Burp Suite Community Edition, mitmproxy, Wireshark.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests with headers: X-Forwarded-Host, X-Original-URL, X-Cache-Key, Upgrade-Insecure-Requests.
    • Responses with Location header pointing to an external, untrusted domain.
    • Multiple requests to the same URI with varying Host headers.
  • Host IOCs:
    • Unexpected entries in web server cache (e.g., files with modified content).
    • Unusual TLS certificates or certificate warnings.
  • Log IOCs:
    • Web server logs showing 400 Bad Request or 500 Internal Server Error after header injection attempts.
    • Repeated requests from the same IP to cacheable resources with different headers.

Detection Engineering

YARA Rule

rule cve_2025_24339_web_cache_poisoning {
    meta:
        description = "Detects HTTP requests with suspicious headers indicative of CVE-2025-24339 exploitation"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-24339"
    strings:
        $header1 = "X-Forwarded-Host:" nocase
        $header2 = "X-Original-URL:" nocase
        $header3 = "X-Cache-Key:" nocase
        $header4 = "Upgrade-Insecure-Requests:" nocase
    condition:
        any of ($header*)
}

Sigma Rule

title: Suspicious HTTP Headers Indicating CVE-2025-24339 Exploitation
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects HTTP requests with headers commonly used in web cache poisoning or MitM attacks against ctrlX OS.
author: Valters IT
date: 2025-04-10
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-24339
logsource:
    category: webserver
    product: apache
    service: http
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: 
            - 'X-Forwarded-Host'
            - 'X-Original-URL'
            - 'X-Cache-Key'
            - 'Upgrade-Insecure-Requests'
    condition: selection
falsepositives:
    - Legitimate use of reverse proxy headers
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-24339 - Suspicious HTTP Header Detected"; flow:to_server; content:"X-Forwarded-Host"; http_header; nocase; sid:1000001; rev:1;)
alert http any any -> any any (msg:"CVE-2025-24339 - Suspicious HTTP Header Detected"; flow:to_server; content:"X-Original-URL"; http_header; nocase; sid:1000002; rev:1;)
alert http any any -> any any (msg:"CVE-2025-24339 - Suspicious HTTP Header Detected"; flow:to_server; content:"X-Cache-Key"; http_header; nocase; sid:1000003; rev:1;)
alert http any any -> any any (msg:"CVE-2025-24339 - Suspicious HTTP Header Detected"; flow:to_server; content:"Upgrade-Insecure-Requests"; http_header; nocase; sid:1000004; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Isolate ctrlX OS systems from untrusted networks (e.g., place behind a firewall, use VPN for remote access).
  2. Disable caching for sensitive endpoints if possible, or implement strict cache key validation.
  3. Enforce HTTPS with HSTS headers to prevent protocol downgrade attacks.
  4. Monitor logs for the IOCs listed above.

Long-Term Fixes:

  • Apply vendor patches as soon as they become available.
  • Implement a Web Application Firewall (WAF) to filter malicious headers.
  • Conduct a security audit of the web application code to identify and fix header injection vulnerabilities.
  • Use network segmentation to limit exposure of ctrlX OS to the internet.

Workarounds:

  • If patching is not possible, consider using a reverse proxy (e.g., Nginx) with strict header validation rules to sanitize incoming requests before they reach ctrlX OS.

Valters IT
DevSecOps & Cyber Threat Intelligence Division

👁️ 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:"ctrlX OS"
http.html:"ctrlX"
product:"Bosch Rexroth ctrlX OS"

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