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")
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Java / Kotlin (Maven) | org.http4s:http4s-core | >= 1.0.0-M1, <= 1.0.0-M30 | sin corrección |
| Java / Kotlin (Maven) | org.http4s:http4s-core_2.10 | >= 0.1.0, <= 0.9.3 | sin corrección |
| Java / Kotlin (Maven) | org.http4s:http4s-core_2.11 | >= 0.1.0, <= 0.21.0-M1 | sin corrección |
| 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 |
Referencias
- Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H- Debilidad (CWE)
CWE-20- Plataforma
- Java / Kotlin (Maven)
- Paquete
org.http4s:http4s-core, org.http4s:http4s-core_2.10, org.http4s:http4s-core_2.11- Publicada
- 06.01.2023
- Actualizado
- 11.10.2026 12:22
Fuentes y licencias
OSV / GitHub Advisory Database - GHSA-54w6-vxfh-fw7f - CC BY 4.0
Historial de vulnerabilidades: org.http4s:http4s-core_2.13
Todas las vulnerabilidades publicadas de este paquete (Java / Kotlin (Maven)), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.
Esta es la única vulnerabilidad conocida de este paquete.
Identifica las vulnerabilidades de tu aplicación
Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.