Cloudanix VulnDB

GHSA-xc7v-wxcw-j472

None

CVSS

—

EPSS

—

Published

Jun 3, 2019

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

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

  1. Identify an application or service that uses tunnel-agent before version 0.6.0, directly or through a transitive npm dependency.
  2. Determine whether the application uses HTTP/HTTPS proxy tunneling and whether proxy authentication settings can be influenced.
  3. Cause the proxy authentication value to be treated as a number instead of a normal string credential.
  4. Observe the outbound proxy CONNECT request or operate the proxy endpoint receiving the request.
  5. Extract the Proxy-Authorization header and base64-decode the value.
  6. 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