GHSA-xc7v-wxcw-j472
NoneCVSS
—
EPSS
—
Published
Jun 3, 2019
CISA due date
—
Cloudanix analysis
Some older software components can accidentally send pieces of application memory to a proxy server, which may expose sensitive data such as credentials or tokens.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Exposure
- Component
- Library
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Affected versions of the npm package tunnel-agent before 0.6.0 can expose uninitialized process memory when proxy authentication data is handled unsafely, particularly if a numeric value is supplied where a string credential is expected. In vulnerable Node.js versions and package code paths, this can cause memory contents from the running process to be encoded into an outbound Proxy-Authorization header, resulting in unintended information disclosure to a proxy server or any party able to inspect that traffic.
Why it matters to the business
The main risk is leakage of sensitive runtime data from applications that use vulnerable tunnel-agent versions for HTTP or HTTPS proxy tunneling. Depending on what is present in process memory, exposed data could include tokens, credentials, request data, configuration values, or other sensitive application information. Exploitation is context-dependent and there is no known CISA KEV listing or mature public exploitation signal, but the issue is old and should be remediated because vulnerable transitive npm dependencies can remain embedded in long-lived applications.
How an attack unfolds
An attacker first needs a path to influence how an application configures tunnel-agent proxy authentication or to position themselves where they can observe proxy traffic, such as operating or compromising a proxy endpoint used by the application. If the vulnerable code receives a numeric proxy authentication value, it may allocate an uninitialized Buffer and base64-encode its contents into the Proxy-Authorization header. The application then sends that header as part of the outbound CONNECT request to the proxy. The attacker captures the header, decodes the base64 content, and reviews the recovered bytes for secrets or sensitive runtime data. Practical exploitability depends heavily on whether attacker-controlled input can reach the proxy authentication option and whether the attacker can observe the resulting outbound proxy request.
How to fix it
Upgrade tunnel-agent to version 0.6.0 or later. For npm projects, update direct dependencies and regenerate the lockfile so transitive dependency resolution no longer pulls a vulnerable version. If tunnel-agent is included transitively, upgrade the parent package that depends on it or use package-manager overrides/resolutions to force tunnel-agent to 0.6.0 or later where compatible. As defense in depth, validate proxy configuration inputs so authentication values are strings of expected length and format, avoid logging proxy authorization headers, and prefer current Node.js runtimes that use safe Buffer allocation patterns.
How to confirm the fix worked
Confirm that package manifests and lockfiles resolve tunnel-agent to 0.6.0 or later. Use dependency scanners such as npm audit, GitHub Dependabot, SCA tooling, or direct commands such as npm ls tunnel-agent to verify no vulnerable copy remains in production build artifacts or containers. Where proxy tunneling is used, review configuration paths to ensure proxy authentication values cannot be attacker-controlled or type-confused into numeric values. If feasible in a test environment, inspect outbound proxy CONNECT requests and verify that Proxy-Authorization contains only the expected credential encoding and not anomalous long or binary-derived base64 data.
Typical attack path
- Identify an application or service that uses tunnel-agent before version 0.6.0, directly or through a transitive npm dependency.
- Determine whether the application uses HTTP/HTTPS proxy tunneling and whether proxy authentication settings can be influenced.
- Cause the proxy authentication value to be treated as a number instead of a normal string credential.
- Observe the outbound proxy CONNECT request or operate the proxy endpoint receiving the request.
- Extract the Proxy-Authorization header and base64-decode the value.
- Inspect the decoded data for leaked process memory such as credentials, tokens, request data, or configuration secrets.
How to detect it
Because exploitation leaves no unique host artifact, detection should focus on dependency exposure and outbound proxy traffic. Review package manifests, lockfiles, SBOMs, container layers, and deployed node_modules directories for tunnel-agent versions before 0.6.0. For possible historical exploitation, examine HTTP proxy logs, TLS inspection logs where available, egress gateway logs, and packet captures for CONNECT requests containing Proxy-Authorization headers that are unexpectedly long, malformed, base64-like but not matching known credentials, or associated with unusual proxy destinations. If a suspicious header is found, preserve the raw value, decode it in a controlled forensic workflow, and search for recognizable secrets or application data. Also review application configuration audit logs for unexpected changes to proxy authentication settings or numeric proxy credential values.
- node_modules/tunnel-agent/package.json
- "name":"tunnel-agent"
- "name": "tunnel-agent"
- "version":"0.5.
- "version": "0.5.
- "version":"0.4.
- "version": "0.4.
- "version":"0.3.
- "version": "0.3.
- "version":"0.2.
- "version": "0.2.
- "version":"0.1.
- "version": "0.1.
- Proxy-Authorization: Basic
What your security team should do
- Inventory applications, containers, and build artifacts for tunnel-agent versions earlier than 0.6.0.
- Upgrade tunnel-agent to 0.6.0 or later, including transitive dependency remediation through parent-package upgrades or package-manager overrides.
- Prioritize internet-facing services, services that use outbound corporate proxies, and services that process user-controlled proxy configuration.
- Review proxy and egress logs for anomalous Proxy-Authorization headers, especially unusually long base64 values or authentication headers associated with unexpected proxy destinations.
- Ensure secrets that may have been resident in affected application memory are rotated if suspicious proxy traffic or header leakage is identified.
- Add CI/CD dependency scanning to prevent vulnerable legacy npm packages from being reintroduced.
The record
Memory Exposure in tunnel-agent
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | tunnel-agent | 0 | 0.6.0 |
Related vulnerabilities
- CVE-2026-114657 Grav from 2.0.0 before 2.2.5 contains an information disclosure vulnerability that allows… CWE-200
- CVE-2026-114574 A security vulnerability has been detected in massCodeIO massCode 5.10. CWE-200
- CVE-2026-111756 follow-redirects is a Node.js HTTP and HTTPS client wrapper that automatically follows… CWE-200
- CVE-2026-111755 follow-redirects is a Node.js HTTP and HTTPS client wrapper that automatically follows… CWE-200
- CVE-2026-112091 A flaw has been found in Dav-ee dairy-management-system… CWE-200
- CVE-2026-109259 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains an uninitialized memory… CWE-200
- CVE-2026-107383 MariaDB Connector/Node.js is used to connect applications developed on Node.js to MariaDB… CWE-200
- CVE-2026-106120 LiquidJS is a Shopify / GitHub Pages compatible template engine in pure JavaScript. CWE-200