Skip to main content

Logto Tunnel CVE-2026-63188

| EUVDEUVD-2026-62867 HIGH
Path Traversal (CWE-22)
2026-08-19 GitHub_M GHSA-rxjr-6c9q-h67x
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Identify network-accessible logto-tunnel port
  2. Delivery
    Confirm --experience-path is active via index.html response
  3. Exploit
    Send HTTP GET with ../ traversal sequence in URL
  4. Install
    Node.js preserves raw traversal in request.url
  5. C2
    path.join resolves path outside staticPath
  6. Execute
    fs.open reads target file
  7. Impact
    File contents returned in HTTP response body

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Two specific conditions must both be true for exploitation: (1) The Logto Tunnel CLI must be invoked with the --experience-path flag set to a local directory - without this flag, createStaticFileProxy is never registered and the vulnerable code path is unreachable; and (2) The tunnel port must be network-accessible from the attacker's location - because server.listen(port) binds to all interfaces on most platforms, any host that can route to the port qualifies. Exploitation is read-only: the attacker can read any file accessible to the OS user running logto-tunnel, but cannot write files, execute code, or bypass Logto authentication. The primary limiting factor is the non-default --experience-path deployment mode, which confines the vulnerable population to developers and pipelines explicitly using the custom sign-in experience feature.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H) is internally consistent with the description: once the preconditions are met the attack is trivially executable with a single HTTP request and no credentials. EPSS data was not provided in the input, so a quantitative exploitation probability cannot be stated. The vulnerability is not listed in CISA KEV, confirming no actively tracked mass exploitation at time of analysis; however, a complete PoC is publicly documented in GHSA-rxjr-6c9q-h67x, meaningfully elevating near-term opportunistic risk above baseline. Real-world exposure is bounded by two non-default requirements - the --experience-path flag must be active and the tunnel port must be reachable from the attacker - which limits the vulnerable population to developers and CI/CD pipelines running custom Logto UI workflows with the port exposed. Within that population the impact is severe: the process can read any file the OS user can access, including .env files, SSH keys, and credentials typically co-located with development projects. Even a small operations team running logto-tunnel on a shared development server with a network-accessible port should treat this as an urgent remediation given the public PoC and zero-authentication requirement.

Exploit ScenarioDerived

An attacker identifies a host running logto-tunnel with --experience-path enabled and the tunnel port accessible over the network. They send a crafted HTTP GET request such as GET /../../../home/runner/.env HTTP/1.1 to the tunnel port; the server resolves the path outside the static directory and returns the file contents directly in the HTTP response body. A complete PoC confirming this scenario is publicly documented in GHSA-rxjr-6c9q-h67x, requiring no authentication, no special tooling, and only a single HTTP request.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 19, 2026

Path traversal in @logto/tunnel (versions <= 0.3.8) exposes arbitrary file read to any network peer that can reach the tunnel port when the --experience-path flag is active. The Node.js static file proxy passes request.url directly into path.join(staticPath, request.url) followed by fs.open without URL normalization or containment checks, allowing ../ sequences to escape the configured static directory. A working proof-of-concept is publicly documented in GHSA-rxjr-6c9q-h67x; no active exploitation is confirmed in CISA KEV as of the analysis date, and the vendor-released fix is version 0.3.9.

RemediationAI

Upgrade @logto/tunnel to version 0.3.9 or later using npm install @logto/tunnel@0.3.9 or by updating the version constraint in package.json and running npm install. The patched release is confirmed at https://github.com/logto-io/logto/releases/tag/@logto/tunnel@0.3.9. If immediate upgrade is not possible, two compensating controls are available with distinct trade-offs: (1) Remove the --experience-path flag from the tunnel invocation - this disables createStaticFileProxy entirely and eliminates the vulnerable code path, but also disables custom sign-in experience asset serving; or (2) Restrict network access to the tunnel port via host firewall rules or by fronting with a reverse proxy bound to 127.0.0.1, which prevents remote exploitation while preserving functionality but requires infrastructure changes and does not fix the underlying flaw. The upstream fix PR and commit are at https://github.com/logto-io/logto/pull/9113 and commit 5686815955534f803d3d50738259efd0f741e62c.

Affected VersionsENISA

logto < 0.3.9

Affected Packages

npm @logto/tunnel fix: 0.3.9
euvd logto fix: 0.3.9

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The @logto/tunnel npm package (CPE: cpe:2.3:a:logto-io:logto) is a Node.js CLI tool that proxies Logto authentication flows while optionally serving custom sign-in experience assets from a local filesystem path via the --experience-path flag. The vulnerable code in packages/tunnel/src/commands/tunnel/utils.ts constructs the file path as path.join(staticPath, request.url) - a textbook CWE-22 (Path Traversal) pattern. Node.js HTTP servers preserve raw ../ sequences in request.url, and path.join resolves them without bounds-checking against the static root, so a URL like /../secret.txt escapes staticPath entirely. The server is started with server.listen(port) without binding to a specific interface, which on many platforms defaults to all interfaces and can expose the service to network peers beyond localhost. The fix in 0.3.9 introduces getSafeStaticFilePath(), which decodes the URL, strips query strings, rejects backslashes, resolves the full path, and checks via path.relative that the result does not start with '..' or is absolute - blocking raw, percent-encoded (%2e%2e%2f), and backslash variants.

Know when Logto gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

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
vuln.today AI 7.5 HIGH

Network-reachable unauthenticated read with no user interaction; confidentiality-only impact, no integrity or availability effect.

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
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 19, 2026 - 21:17 EUVD
CVE Published
Aug 19, 2026 - 19:47 cve.org
HIGH 8.7

DescriptionCVE.org

Logto is the modern, open-source auth infrastructure for SaaS and AI apps. Prior to 0.3.9, the Logto Tunnel npm package enabled createStaticFileProxy from packages/tunnel/src/commands/tunnel/index.ts and passed request.url from static asset requests through packages/tunnel/src/commands/tunnel/utils.ts using path.join(staticPath, request.url) and then fs.open(requestPath, "r") without URL normalization or a containment check. When --experience-path was enabled and the tunnel port was reachable, an unauthenticated requester could send a path containing ../ to createStaticFileProxy and read files outside the configured static directory that were readable by the logto-tunnel process. The service used server.listen(port), which could expose the tunnel to other hosts depending on the platform and deployment. This issue is fixed in version 0.3.9.

Executive ViewAI

Why It Matters

@logto/tunnel versions 0.3.8 and earlier contain a path traversal vulnerability allowing remote attackers to read arbitrary files from affected systems, potentially exposing sensitive configuration data, credentials, and application state. This creates risk of broader system compromise and data theft for organizations using this component. Immediate patching to version 0.3.9 is required to contain this exposure.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 63% exploitable
Prevalence
Low
developer CLI tool for niche Logto custom UI workflow
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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