Http4s improperly parses User-Agent and Server headers
Impact
The User-Agent and Server header parsers are susceptible to a fatal error on certain inputs. In http4s, modeled headers are lazily parsed, so this only applies to services that explicitly request these typed headers.
v0.21.x
val unsafe: Option[`User-Agent`] = req.headers.get(`User-Agent`)
v0.22.x, v0.23.x, v1.x
val unsafe: Option[`User-Agent`] = req.headers.get[`User-Agent`]
val alsoUnsafe: Option[`Server`] = req.headers.get[Server]
Patches
Fixes are released in 0.21.34, 0.22.15, 0.23.17, and 1.0.0-M38.
Workarounds
Use the weakly typed header interface
v0.21.x
val safe: Option[Header] = req.headers.get("User-Agent".ci)
// but don't do this
val unsafe = header.map(_.parsed)
v0.22.x, v0.23.x, v1.x
val safe: Option[Header] = req.headers.get(ci"User-Agent")
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Java / Kotlin (Maven) | org.http4s:http4s-core | >= 1.0.0-M1, <= 1.0.0-M30 | brak poprawki |
| Java / Kotlin (Maven) | org.http4s:http4s-core_2.10 | >= 0.1.0, <= 0.9.3 | brak poprawki |
| Java / Kotlin (Maven) | org.http4s:http4s-core_2.11 | >= 0.1.0, <= 0.21.0-M1 | brak poprawki |
| Java / Kotlin (Maven) | org.http4s:http4s-core_2.12 | >= 0.1.0, < 0.21.34, >= 0.22.0, < 0.22.15, >= 0.23.0, < 0.23.17 | 0.21.34, 0.22.15, 0.23.17 |
| Java / Kotlin (Maven) | org.http4s:http4s-core_2.13 | >= 0.1.0, < 0.21.34, >= 0.22.0, < 0.22.15, >= 0.23.0, < 0.23.17, >= 1.0.0-M1, < 1.0.0-M38 | 0.21.34, 0.22.15, 0.23.17, 1.0.0-M38 |
Odnośniki
- Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H- Słabość (CWE)
CWE-20- Platforma
- Java / Kotlin (Maven)
- Paczka
org.http4s:http4s-core, org.http4s:http4s-core_2.10, org.http4s:http4s-core_2.11- Ujawniono
- 06.01.2023
- Aktualizacja
- 11.10.2026 12:22
Źródła i licencje
OSV / GitHub Advisory Database - GHSA-54w6-vxfh-fw7f - CC BY 4.0
Historia podatności: org.http4s:http4s-core_2.13
Wszystkie opisane podatności tej paczki (Java / Kotlin (Maven)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
To jedyna znana podatność tej paczki.
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.