Bug 2499594 (CVE-2026-15574) - CVE-2026-15574 vllm-orchestrator-gateway: vllm-orchestrator-gateway: Authorization header and full chat payloads logged at hard-coded DEBUG default
Summary: CVE-2026-15574 vllm-orchestrator-gateway: vllm-orchestrator-gateway: Authoriz...
Keywords:
Status: NEW
Alias: CVE-2026-15574
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-07-13 07:49 UTC by OSIDB Bzimport
Modified: 2026-07-13 07:54 UTC (History)
0 users

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2026-07-13 07:49:16 UTC
The production binary unconditionally initialises tracing at DEBUG level and logs every incoming Authorization header value and full chat payload (including PII and secrets) to stdout, which flows to the node journal and cluster logging stack.

File: src/main.rs:67-71 (init), src/main.rs:163,210,268 (payload), src/main.rs:425,494 (headers), src/main.rs:461 (response)
Framework: ASVS V7.1.1, V8.3.5
CWE: CWE-532 (Insertion of Sensitive Information into Log File)
CVSS v3.1: N/A — High

Detail


tracing_subscriber::fmt()
    .with_max_level(tracing::Level::DEBUG)
    ...
    .init();
Per request:

tracing::debug!("... payload: {:?}", payload) logs full prompt/message body (PII, secrets pasted into chat)

tracing::debug!("Header {}: {:?}", name, value) iterates all incoming headers, including Authorization: Bearer …, before the allow-list filter is applied

Full orchestrator response body is also logged

In OpenShift these go to stdout → node journal → cluster logging stack, readable by anyone with pods/log RBAC on the namespace.

Impact
Bearer tokens (service account tokens, user OAuth tokens) and full chat payloads (potentially containing PII, credentials, proprietary data) are written to persistent logs. Any user with pods/log access can harvest credentials and sensitive conversation content.

Compounding Factors
H-1: No authentication means any pod can trigger log entries

Log retention policies may persist tokens beyond their validity period

Remediation
Default max_level to INFO (env-overridable via RUST_LOG); never log header values for authorization/cookie; redact or drop payload body logging outside an explicit dev mode.


Note You need to log in before you can comment on or make changes to this bug.