Description
h3 versions before 1.15.9 contain a path traversal vulnerability in the serveStatic utility. A double-decoding flaw allows a request path containing double-encoded dot sequences (e.g. %252e%252e) to be decoded to %2e%2e, which survives resolveDotSegments() because that function only checks for literal '.' characters. When the resulting asset ID is resolved by URL-based backends (CDN, S3, object storage), %2e%2e is interpreted as '..' per RFC 3986, enabling path traversal to read arbitrary files from the backend.
Published: 2026-09-06
Score: 8.2 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A double‑decoding flaw in h3 < 1.15.9’s serveStatic function allows a request path that contains double‑encoded dot sequences such as %252e%252e to be decoded to %2e%2e. The resolveDotSegments() routine only checks for literal '.' characters, so the double‑decoded string bypasses dot‑segment removal. When the resulting asset ID is resolved by URL‑based backends—including CDNs, S3, or other object storage—RFC 3986 treats %2e%2e as ‘..’, enabling an attacker to traverse directories and read arbitrary files. This is a classic Path Traversal (CWE‑22) that can compromise confidentiality and possibly integrity if configuration files or credentials are exposed.

Affected Systems

The vulnerability affects the h3js:h3 JavaScript library. Any deployment of h3 versions earlier than 1.15.9 that uses the serveStatic utility and serves static assets from remote or cloud backends is impacted. The affected path is the serveStatic entry point which resolves request URLs to backend object identifiers.

Risk and Exploitability

The CVSS base score is 8.2, indicating high severity. EPSS details are unavailable, and the vulnerability is not listed in the CISA KEV catalog. An attacker can exploit the flaw remotely by sending a crafted HTTP request that contains double‑encoded dot sequences in the path. The attack requires no authentication and exploits standard URL handling logic, making it a straightforward path traversal attack against any exposed h3 service.

Generated by OpenCVE AI on September 6, 2026 at 13:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade h3 to version 1.15.9 or newer to eliminate the double‑decoding flaw.
  • Review and hard‑enforce URL‑based backend configuration so that untrusted paths are not allowed; consider moving static assets to a dedicated bucket that enforces path restrictions.
  • If an immediate upgrade is infeasible, implement a pre‑request validation layer that rejects any path containing percent‑encoded dot sequences (%252e or similar) or that resolves to ‘..’ after decoding, effectively blocking traversal attempts.

Generated by OpenCVE AI on September 6, 2026 at 13:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 06 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
Description h3 versions before 1.15.9 contain a path traversal vulnerability in the serveStatic utility. A double-decoding flaw allows a request path containing double-encoded dot sequences (e.g. %252e%252e) to be decoded to %2e%2e, which survives resolveDotSegments() because that function only checks for literal '.' characters. When the resulting asset ID is resolved by URL-based backends (CDN, S3, object storage), %2e%2e is interpreted as '..' per RFC 3986, enabling path traversal to read arbitrary files from the backend.
Title h3 before 1.15.9 Path Traversal via Double Decoding
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N'}

cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-06T12:00:26.881Z

Reserved: 2026-09-06T11:35:19.316Z

Link: CVE-2026-86251

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-06T12:17:15.900

Modified: 2026-09-06T12:17:15.900

Link: CVE-2026-86251

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-06T13:30:07Z

Weaknesses
  • CWE-22

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