Live Exposure Defense: From CVE to Confirmed Exposure in 12 Hours – See more

New CVE Detected

CVE-2026-86251 – Path Traversal / Arbitrary File Disclosure – h3 (h3js) before 1.15.9

Be the first to know when new zero-days emerge:

Summary

CVE-2026-86251 is a path traversal vulnerability in the serveStatic utility of h3 (h3js), a minimal HTTP framework for Node.js/JavaScript. The flaw arises from a double-decoding inconsistency that allows attackers to bypass h3’s dot-segment sanitization and reach files outside the intended static asset directory. The vulnerability affects all h3 versions prior to 1.15.9 and has been assigned a CVSS v4.0 score of 8.2 (High).

Technical details

  • Root cause: h3 decodes incoming request paths twice in different places. H3Event decoding (in src/event.ts) escapes %25 sequences before decoding, while serveStatic (in src/utils/static.ts) performs an additional, redundant decodeURI() call.
  • Trigger conditions: An attacker sends a double URL-encoded path such as %252e%252e (which decodes to %2e%2e after the first pass, then to .. when decoded a second time downstream). h3’s resolveDotSegments() sanitization function only checks for literal . characters and does not detect percent-encoded dot sequences, so the malicious segment passes validation.
  • Attack vector: Network — a remote, unauthenticated attacker crafts an HTTP request with a double-encoded asset path (e.g., http://vulnerable-app/%252e%252e/%252e%252e/etc/passwd) against an application using h3’s serveStatic utility.
  • Impact: Applications that construct backend URLs from the decoded asset ID (e.g., new URL(id, baseUrl)) against URL-based backends such as CDNs or S3-compatible object storage will resolve the traversal sequence and serve files outside the intended directory, resulting in unauthorized disclosure of sensitive files. Applications using filesystem-based backends with path.join() are not affected by this specific bypass. The vulnerability impacts confidentiality only; there is no integrity or availability impact.

Affected software

  • Vendor/Package: h3js — h3 (npm package pkg:npm/h3)
  • Vulnerable versions: All versions ≤ 1.15.8
  • Fixed version: 1.15.9 and later

Severity

  • CVSS v4.0: 8.2 (High) — 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
  • CVSS v3.1: 5.9 (Medium) — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

Mitigation and recommended actions

  • Immediate: Upgrade the h3 package to version 1.15.9 or later, which removes the redundant decodeURI() call in serveStatic and hardens resolveDotSegments() to detect and normalize percent-encoded dot sequences before path validation.
  • If immediate patching is not possible:
    • Avoid using serveStatic in combination with URL-based backends (CDNs, S3, or similar object storage) that construct URLs directly from client-supplied asset identifiers.
    • Where feasible, prefer filesystem-based static serving with path.join(), which is not affected by this bypass.
    • Add an additional layer of input validation/normalization (e.g., reject requests containing encoded traversal sequences such as %252e or %2e) at a reverse proxy or WAF in front of applications using vulnerable h3 versions.
    • Audit backend storage access logs for requests containing repeated percent-encoding of dot-slash sequences as an indicator of attempted exploitation.

References

Are you exposed?

Get a free report of your organization’s exposure to this CVE and threat

How IONIX’s External Exposure Management Platform Detects and Validates
Zero-Days to Shrink MTTR

1

Map your entire attack surface (continously)

IONIX uses multi-factor discovery methods, including DNS analysis, certificate mapping, metadata inspection, and more, to automatically map every internet-facing asset across your environment. This includes cloud instances, third-party platforms, shadow IT, and even forgotten infrastructure that traditional tools miss.

2

Monitor for new CVEs

Dozens of threat intel feeds using agentic technology are continuously analyzed to detect the appearance of proof-of-concept code, exploit kits, and indicators of active targeting. IONIX goes further by applying AI to proactively evaluate whether emerging vulnerabilities are likely to be exploited, even before PoCs go public.

3

Identify Potential External Exposures

Not all CVEs matter. IONIX filters vulnerabilities by asking attacker-centric questions: Can it be reached from the internet? Does it require authentication? Is it being exploited in the wild? This dramatically reduces noise and focuses teams on threats that can actually be weaponized.

4

Create Safe, Scalable Exploit Validations

IONIX transforms real-world PoCs into safe, non-intrusive test payloads that can be run in production environments without disruption. These simulations are precisely targeted to the systems that are vulnerable, ensuring rapid validation without unnecessary load.

5

Execute Exploit Validations

By combining context about software stack, versioning, exposure status, and reachability, IONIX ensures that only the right payloads are executed against the right assets, maximizing efficiency and minimizing risk.

6

Drive Fast and Actionable Remediation

Results are routed through integrations with ticketing, SOAR, and SIEM tools. Issues are written in plain language, bundled into remediation clusters, and prioritized based on asset criticality, exploitability, and blast radius. This shortens mean time to remediation (MTTR) and empowers teams to act with confidence.

Are you exposed?

Get a free report of your organization’s exposure to this CVE and threat

Subscribe to Threat Center RSS

Copy/paste the link below into your preferred RSS reader or follow these instructions to subscribe to Slack alerts.

Get Real-Time CVE Alerts to Your Email

Be the first to know when new zero-days emerge