---
id: CVE-2026-69201
title: Http4s is a Scala interface for HTTP services
summary: >-
  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
  contai…
severity: medium
cvss: 5.9
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-22
vendor: http4s
product: 'org.http4s:http4s-server_2.12'
affected:
  - 'org.http4s:http4s-server_2.12 <= 0.23.34'
  - 'org.http4s:http4s-server_2.13 <= 0.23.34'
  - 'org.http4s:http4s-server_3 <= 0.23.34'
  - 'org.http4s:http4s-server_3 >= 1.0.0-M1, <= 1.0.0-M46'
  - 'org.http4s:http4s-server_2.13 >= 1.0.0-M1, <= 1.0.0-M46'
patched:
  - 'org.http4s:http4s-server_2.12 0.23.35'
  - 'org.http4s:http4s-server_2.13 0.23.35'
  - 'org.http4s:http4s-server_3 0.23.35'
  - 'org.http4s:http4s-server_3 1.0.0-M47'
  - 'org.http4s:http4s-server_2.13 1.0.0-M47'
published: '2026-09-15'
updated: '2026-09-16'
sourceUpdated: '2026-09-16T20:38:04.943'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-69201'
references:
  - url: >-
      https://github.com/http4s/http4s/commit/bcd99cdc1342ef58a0f132acb814af06a668a8d3
    label: security-advisories@github.com
  - url: 'https://github.com/http4s/http4s/releases/tag/v0.23.35'
    label: security-advisories@github.com
  - url: 'https://github.com/http4s/http4s/releases/tag/v1.0.0-M47'
    label: security-advisories@github.com
  - url: 'https://github.com/http4s/http4s/security/advisories/GHSA-crq5-92j2-j7wv'
    label: security-advisories@github.com
  - url: 'https://github.com/advisories/GHSA-crq5-92j2-j7wv'
tags:
  - nvd
  - ghsa
  - maven
  - cve.org
aliases:
  - GHSA-crq5-92j2-j7wv
ecosystem: maven
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-15T19:21:05.446728Z'
ingestedAt: '2026-09-15T19:42:58.802Z'
epss: 0.00627
epssPercentile: 0.48682
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-69201)

Affected packages:

- `org.http4s:http4s-server_2.12 <= 0.23.34`
- `org.http4s:http4s-server_2.13 <= 0.23.34`
- `org.http4s:http4s-server_3 <= 0.23.34`
- `org.http4s:http4s-server_3 >= 1.0.0-M1, <= 1.0.0-M46`
- `org.http4s:http4s-server_2.13 >= 1.0.0-M1, <= 1.0.0-M46`

Patched in:

- `org.http4s:http4s-server_2.12 0.23.35`
- `org.http4s:http4s-server_2.13 0.23.35`
- `org.http4s:http4s-server_3 0.23.35`
- `org.http4s:http4s-server_3 1.0.0-M47`
- `org.http4s:http4s-server_2.13 1.0.0-M47`

Source: https://github.com/advisories/GHSA-crq5-92j2-j7wv
