Skip to main content

Whistle EUVDEUVD-2026-45030

| CVE-2026-55629 HIGH
Path Traversal (CWE-22)
2026-07-16 GitHub_M GHSA-3vfr-4gwf-qxfp
8.7
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.5 HIGH

Network-reachable endpoint, no auth or user interaction, and a simple traversal parameter give AV:N/AC:L/PR:N/UI:N; arbitrary file read yields C:H with no integrity or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

4
Patch available
Jul 16, 2026 - 22:19 EUVD
Source Code Evidence Fetched
Jul 16, 2026 - 20:15 vuln.today
Analysis Generated
Jul 16, 2026 - 20:15 vuln.today
CVE Published
Jul 16, 2026 - 19:12 cve.org
HIGH 8.7

DescriptionCVE.org

Whistle is an HTTP, HTTP2, HTTPS, and WebSocket debugging proxy. Prior to 2.10.3, lib/service/service.js handles GET /cgi-bin/temp/get by reading req.query.filename, joining it to TEMP_FILES_PATH only when it matches the temporary file pattern, and otherwise passing the user-supplied filename directly to getFile, allowing a remote attacker to read arbitrary files such as /etc/passwd. This issue is reported as fixed in version 2.10.3.

AnalysisAI

Arbitrary file read in the Whistle debugging proxy (avwo/whistle) before 2.10.3 lets remote attackers retrieve any file on the host by abusing the GET /cgi-bin/temp/get endpoint. Because lib/service/service.js only sanitizes req.query.filename when it matches the temporary-file pattern and otherwise hands the raw filename to getFile, a value like ../../../../etc/passwd escapes TEMP_FILES_PATH and is served back. The CVSS 4.0 score is 8.7 (high) with a confidentiality-only impact; there is no public exploit identified at time of analysis, and the flaw is fixed in 2.10.3.

Technical ContextAI

Whistle is a Node.js-based cross-protocol (HTTP/HTTP2/HTTPS/WebSocket) debugging proxy commonly run by developers to capture and rewrite traffic. The vulnerable logic lives in lib/service/service.js, which implements the /cgi-bin/temp/get handler for downloading Whistle's own temporary capture files stored under config.TEMP_FILES_PATH. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / Path Traversal): the handler applies a path-safe join to TEMP_FILES_PATH only when the supplied filename matches the expected temp-file naming pattern, but falls through to passing the attacker-controlled filename directly into getFile for any non-matching value. With no canonicalization or traversal-sequence filtering on that fallback path, ../ sequences resolve outside the intended temp directory to any file the Whistle process user can read. The fixing commit (777bcf6) is a broad release change touching config.js, HTTPS/CA and WebSocket handling; the security-relevant hardening is bundled into the 2.10.3 release rather than isolated in the visible diff hunks.

RemediationAI

Vendor-released patch: 2.10.3 - upgrade Whistle to version 2.10.3 or later (for example, npm install -g whistle@latest or pin whistle@2.10.3), per advisory GHSA-3vfr-4gwf-qxfp (https://github.com/avwo/whistle/security/advisories/GHSA-3vfr-4gwf-qxfp) and release https://github.com/avwo/whistle/releases/tag/v2.10.3. If you cannot patch immediately, do not expose the Whistle service to untrusted networks: bind it to 127.0.0.1/loopback instead of 0.0.0.0 so the /cgi-bin/temp/get endpoint is unreachable remotely, and place any required remote access behind an authenticating reverse proxy or firewall rule that restricts source IPs - the trade-off is losing convenient network-wide access to the debugging UI. Additionally, run the Whistle process under a low-privilege, dedicated service account so that even a successful traversal only reads files that account can access, limiting exposure of sensitive files such as /etc/passwd, SSH keys, or application secrets; the side effect is that Whistle features needing broader filesystem access may require explicit permission grants.

Share

EUVD-2026-45030 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy