Description
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.
Published: 2026-08-19
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Logto Tunnel allowed unauthenticated users to request arbitrary file paths by passing a request URL directly into a file open operation without normalizing or validating the path. This path‑traversal flaw in the createStaticFileProxy routine permits reading any file reachable by the tunnel process, potentially exposing configuration data, secrets, or other sensitive content. The vulnerability does not provide execution of arbitrary code but can lead to confidentiality compromise through file disclosure.

Affected Systems

The flaw affects the logto-io:logto product, specifically the logto‑tunnel npm package used prior to version 0.3.9. Systems running the tunnel with the "--experience-path" flag enabled and a remotely reachable port are vulnerable. The issue was addressed in release 0.3.9.

Risk and Exploitability

The CVSS score of 8.7 denotes a high severity. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. Attackers can reach the tunnel via the exposed listening port; the service accepts unauthenticated requests, so no credentials are required. The path traversal logic is executed server‑side, meaning the attack can be carried out remotely through network traffic directed at the tunnel endpoint. Based on the description, it is inferred that the tunnel port may be reachable from external hosts depending on platform and deployment configuration.

Generated by OpenCVE AI on August 19, 2026 at 23:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade logto‑tunnel to version 0.3.9 or later to apply the fix.
  • Configure the tunnel to listen only on localhost or a restricted internal network interface to prevent external access.
  • If the --experience‑path feature is not required, disable it or block external traffic to the tunnel port using firewalls or ACLs.
  • Continuously monitor tunnel logs for unexpected or repeated file request activity to detect potential exploitation attempts.

Generated by OpenCVE AI on August 19, 2026 at 23:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-rxjr-6c9q-h67x logto-tunnel serves files outside --experience-path via path traversal
History

Wed, 19 Aug 2026 23:00:00 +0000

Type Values Removed Values Added
First Time appeared Logto-io
Logto-io logto
Vendors & Products Logto-io
Logto-io logto

Wed, 19 Aug 2026 20:00:00 +0000

Type Values Removed Values Added
Description 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.
Title logto-tunnel serves files outside --experience-path via path traversal
Weaknesses CWE-22
References
Metrics cvssV4_0

{'score': 8.7, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T19:47:05.155Z

Reserved: 2026-07-15T22:13:00.721Z

Link: CVE-2026-63188

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-19T20:17:20.230

Modified: 2026-08-19T20:17:20.230

Link: CVE-2026-63188

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-19T22:45:06Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')