Description
Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, ResourceService and WebjarService decode each URL path segment but reject only segments exactly equal to an empty string, a dot, or two dots. A request containing percent-encoded slash or backslash separators can turn an accepted segment into a parent-directory traversal after decoding, allowing access to classpath or WebJar resources outside the configured base when a directory-backed classpath is served and the backend preserves the encoded separator. The patch rejects decoded segments containing slash or backslash in ResourceService and WebjarService, and applies the same guard to the non-exploitable FileService for consistency. This issue is fixed in versions 0.23.35 and 1.0.0-M47.
Published: 2026-09-15
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Directory traversal through percent‑encoded path segments
Action: Patch
AI Analysis

Impact

Http4s is a Scala framework that exposes HTTP services. The vulnerability allows a web client to craft a request whose or backslash (\\) separators are decoded by the server, turning an otherwise accepted path segment into an ancestor directory reference. When the backend serves resources from a directory‑backed classpath and preserves the encoded separator, the attacker can access files or WebJar resources outside the intended base directory, potentially exposing sensitive configuration or source files. The flaw is a classic directory traversal conflated with improper path sanitization, classified as CWE‑22.

Affected Systems

The issue exists in http4s versions prior to 0.23.35 and 1.0.0‑M47. The fix is included in releases 0.23.35 and 1.0.0‑M47 and later.

Risk and Exploitability

The CVSS score of 5.9 indicates moderate severity. The EPSS score of <1% suggests a very low likelihood of exploitation, and the vulnerability is not listed in the CISA KEV catalog. Attackers can trigger the flaw by sending a URL containing a percent‑encoded slash or backslash, which is interpreted after decoding as a path separator. No authentication is required if the affected service is publicly reachable, though the ability to read arbitrary files is limited to directory‑backed classpath or WebJar resources configured by the application.

Generated by OpenCVE AI on September 17, 2026 at 08:44 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade http4s to version 0.23.35 or newer, or to 1.0.0‑M47 or later.
  • If upgrading is not immediately possible, reconfigure the backend so it does not serve directory‑backed classpath or strip percent‑encoded separators before processing path segments.
  • Implement or configure a web application firewall rule that rejects URLs containing percent‑encoded slash or backslash characters or blocks path segments that resolve to parent directory references.

Generated by OpenCVE AI on September 17, 2026 at 08:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-crq5-92j2-j7wv Http4s: ResourceService and Webjar Service path escape via percent-encoded separators
History

Tue, 15 Sep 2026 22:30:00 +0000

Type Values Removed Values Added
First Time appeared Http4s
Http4s http4s
Vendors & Products Http4s
Http4s http4s

Tue, 15 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 15 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
Description Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, ResourceService and WebjarService decode each URL path segment but reject only segments exactly equal to an empty string, a dot, or two dots. A request containing percent-encoded slash or backslash separators can turn an accepted segment into a parent-directory traversal after decoding, allowing access to classpath or WebJar resources outside the configured base when a directory-backed classpath is served and the backend preserves the encoded separator. The patch rejects decoded segments containing slash or backslash in ResourceService and WebjarService, and applies the same guard to the non-exploitable FileService for consistency. This issue is fixed in versions 0.23.35 and 1.0.0-M47.
Title Http4s: ResourceService and Webjar Service path escape via percent-encoded separators
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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-15T19:21:15.876Z

Reserved: 2026-08-03T16:57:50.124Z

Link: CVE-2026-69201

cve-icon Vulnrichment

Updated: 2026-09-15T19:21:11.076Z

cve-icon NVD

Status : Deferred

Published: 2026-09-15T19:17:37.423

Modified: 2026-09-16T20:38:04.943

Link: CVE-2026-69201

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-17T08:45:17Z

Weaknesses
  • CWE-22

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