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

CVE-2025-12874

CVE-2025-12874 Supply Chain Attack in Quest
📅 PUBLISHED: 2025-12-19 19:36 UTC 🔄 UPDATED: 2026-09-23 20:27 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.50%
👁️
0.50% probability
12.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: United States License: Commercial
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
6.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-12874 is an HTTP Request Smuggling vulnerability in Quest Coexistence Manager for Notes, specifically within the Free/Busy Connector modules. The flaw allows an attacker to exploit inconsistencies in how the server interprets HTTP requests, using a Content-Length-Transfer-Encoding (CL.TE) attack vector. This can lead to severe consequences including bypassing access controls, poisoning web caches, hijacking user sessions, or triggering unintended internal requests. The vulnerability affects version 3.8.2045, and other versions may also be impacted. As of this report, no official patch has been released, and no public proof-of-concept code is 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 is not related to NPM, PyPI, Go, or Ruby packages. It is a proprietary enterprise software component from Quest Software.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (NVD) – However, based on the attack vector and potential impact, a realistic CVSS v3.1 score is 9.8 (Critical).
  • 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: High (I:H)
  • Availability Impact: High (A:H)
  • Threat Level: Critical – Exploitation could lead to full compromise of the application and underlying infrastructure.

Deep Dive & Mechanics

The vulnerability is a classic HTTP Request Smuggling (CWE-444) attack, specifically the CL.TE variant. The server parses the Content-Length header to determine the request body length, while a front-end proxy or load balancer uses the Transfer-Encoding: chunked header. An attacker crafts a request where the Content-Length header specifies a smaller body than the actual chunked data. The front-end proxy sees the chunked encoding and forwards the entire request, but the backend server (Coexistence Manager) uses the Content-Length value, leaving the remaining chunked data to be interpreted as the start of the next request. This allows the attacker to "smuggle" a malicious request that bypasses access controls, poisons caches, or hijacks sessions.

Attack Flow:

  1. Attacker sends a crafted HTTP request with both Content-Length and Transfer-Encoding: chunked headers.
  2. The front-end proxy (e.g., load balancer) processes the request using Transfer-Encoding: chunked and forwards the entire body.
  3. The backend server (Coexistence Manager) processes the request using Content-Length, ignoring the chunked encoding.
  4. The remaining chunked data is treated as a new, separate HTTP request by the backend.
  5. This smuggled request can target internal endpoints, bypass authentication, or poison caches.

Vulnerable vs. Patched Code

Since no patch is available, a direct code comparison is not possible. However, the vulnerable code likely resides in the HTTP request parsing logic within the Free/Busy Connector modules. The fix would involve ensuring consistent handling of Content-Length and Transfer-Encoding headers, typically by rejecting requests that contain both headers or by strictly adhering to RFC 7230.

Vulnerable Code (Conceptual):

# Vulnerable: Accepts both headers and uses Content-Length
def parse_request(request):
    if 'Content-Length' in request.headers:
        body_length = int(request.headers['Content-Length'])
        body = request.body[:body_length]
    elif 'Transfer-Encoding' in request.headers:
        body = parse_chunked(request.body)
    else:
        body = request.body
    return body

Patched Code (Conceptual):

# Patched: Rejects requests with both headers
def parse_request(request):
    if 'Content-Length' in request.headers and 'Transfer-Encoding' in request.headers:
        raise HTTPBadRequest("Ambiguous request")
    if 'Transfer-Encoding' in request.headers:
        body = parse_chunked(request.body)
    elif 'Content-Length' in request.headers:
        body_length = int(request.headers['Content-Length'])
        body = request.body[:body_length]
    else:
        body = request.body
    return body

Exploitation & Lab Setup

Red Team (Exploitation)

Lab Setup:

  • Install Quest Coexistence Manager for Notes version 3.8.2045 in a controlled environment.
  • Configure a front-end proxy (e.g., Nginx or HAProxy) to forward requests to the Coexistence Manager.
  • Use a tool like Burp Suite or a custom Python script to craft smuggling payloads.

Exploitation Steps:

  1. Identify the target endpoint (e.g., /freebusy).
  2. Craft a CL.TE smuggling request:
POST /freebusy HTTP/1.1
Host: target.com
Content-Length: 13
Transfer-Encoding: chunked

0

GET /admin/deleteUser?user=admin HTTP/1.1
Host: internal
  1. Send the request. The front-end proxy forwards the entire chunked body, but the backend sees only the first 13 bytes (0\r\n\r\n), and the remaining GET /admin/deleteUser... is treated as a new request.
  2. The smuggled request can bypass authentication and perform privileged actions.

Note: No public exploit code is available. The above is a conceptual example.

Blue Team (Defense & Detection)

Detection:

  • Monitor for HTTP requests containing both Content-Length and Transfer-Encoding headers.
  • Look for anomalous request patterns where the Content-Length value does not match the actual body size.
  • Use web application firewalls (WAF) to block requests with ambiguous headers.

Mitigation:

  • Apply input validation to reject requests with both Content-Length and Transfer-Encoding headers.
  • Ensure all components in the request chain (proxies, load balancers, backend servers) handle HTTP headers consistently.
  • If possible, disable HTTP/1.1 pipelining or use HTTP/2 which is not vulnerable to this attack.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • HTTP requests containing both Content-Length and Transfer-Encoding: chunked headers.
    • Requests with mismatched Content-Length values and actual body sizes.
    • Unusual internal requests (e.g., to /admin, /internal) originating from the Coexistence Manager server.
  • Log IOCs:
    • Web server logs showing requests with Transfer-Encoding: chunked and a Content-Length header.
    • Backend logs showing unexpected requests or access to restricted endpoints.
  • File IOCs:
    • Modified configuration files for the Coexistence Manager or proxy server.
    • Suspicious temporary files in web directories.

Detection Engineering

YARA Rule

rule HTTP_Smuggling_CL_TE {
    meta:
        description = "Detects HTTP requests with both Content-Length and Transfer-Encoding headers (CL.TE smuggling)"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2025-12874"
    strings:
        $cl = "Content-Length:" nocase
        $te = "Transfer-Encoding:" nocase
    condition:
        all of them
}

Sigma Rule

title: HTTP Request Smuggling - CL.TE Attack
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects HTTP requests containing both Content-Length and Transfer-Encoding headers
author: Valters IT
date: 2025-04-10
tags:
    - attack.t1190
    - cve.2025.12874
logsource:
    category: webserver
    product: generic
detection:
    selection:
        cs-method: "POST"
        cs-uri: "*"
        cs-headers|contains|all:
            - "Content-Length"
            - "Transfer-Encoding"
    condition: selection
falsepositives:
    - Legitimate use of both headers in rare cases (e.g., HTTP/1.1 proxies)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-12874 HTTP Request Smuggling CL.TE"; flow:to_server; content:"Content-Length"; http_header; content:"Transfer-Encoding"; http_header; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Isolate the affected Coexistence Manager for Notes instance from untrusted networks.
  2. Apply a WAF rule to block requests containing both Content-Length and Transfer-Encoding headers.
  3. Monitor logs for signs of exploitation.

Long-Term Fix:

  • Vendor Patch: Await an official patch from Quest Software. Contact Quest support for updates.
  • Workaround: If possible, upgrade to a newer version of the software that is not vulnerable.
  • Configuration: Ensure all front-end proxies and load balancers are configured to strip or reject ambiguous headers before forwarding to the backend.

Valters IT Signature This report was generated by Valters IT Cyber Threat Intelligence Division. For questions, contact threatintel@valtersit.com.

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