CVE-2026-69201
The static content handlers `ResourceService` and `WebjarService` URL decode each path segment and then reject only segments that are exactly `""`, `"."`, or `".."`. A percent-encoded separator (`%2F`) lets an attacker smuggle a `../` segment past that filter and escape the configured base, reading resources that should not be public. On Windows, a similar attack exists with (`%5C`). ## Impact Disclosure of classpath or webjar resources outside the configured base. ## Preconditions - Application uses `ResourceService` (with a non-root base path) or `WebjarService` - At least one classpath entry is served from a directory (e.g. `sbt run`, exploded .war) - Backend forwards `%2F`/`%5C` without normalizing (e.g., Ember, Blaze) ## Fixes The patch rejects any decoded path segment containing `/` (`%2F`) or `\` (`%5C`) with a `400 Bad Request` in `ResourceService` and `WebjarService`. `FileService` was not exploitable, but the same guards are applied for consistency and to remove its reliance on path normalization. ## Workarounds - Deploy as a fat jar, with no filesystem directories on the classpath. - Front the service with a proxy that rejects/normalizes `%2F` and `%5C` in the request path.
Properties
- ghsa_id
- GHSA-crq5-92j2-j7wv
- severity
- medium
- summary
- Http4s: ResourceService and Webjar Service path escape via percent-encoded separators
- cvss_score
- 5.9
- cve_id
- CVE-2026-69201
- cvss_vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
- signal_observed_at
- 2026-09-15T21:13:07+00:00
- is_ghsa_only
- false
- ghsa_published
- 2026-09-15T20:01:12Z
- source_url
- https://github.com/advisories/GHSA-crq5-92j2-j7wv
- ghsa_updated
- 2026-09-15T20:01:14Z
Related Entities (8)
VULNERABLE_TO (3)
AFFECTS (3)
HAS_WEAKNESS (1)
REPORTED_BY (1)
Explore deeper with Ninja Signal's threat intelligence graph