GHSA-54w6-vxfh-fw7fHighCVSS 7.5

Http4s improperly parses User-Agent and Server headers

Published
January 6, 2023
Last Modified
December 11, 2025

🔗 CVE IDs covered (1)

📋 Description

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")

🎯 Affected products10

  • maven/org.http4s:http4s-core_2.13:>= 0.1.0, < 0.21.34
  • maven/org.http4s:http4s-core_2.13:>= 0.22.0, < 0.22.15
  • maven/org.http4s:http4s-core_2.13:>= 0.23.0, < 0.23.17
  • maven/org.http4s:http4s-core_2.13:>= 1.0.0-M1, < 1.0.0-M38
  • maven/org.http4s:http4s-core_2.10:>= 0.1.0, <= 0.9.3
  • maven/org.http4s:http4s-core_2.11:>= 0.1.0, <= 0.21.0-M1
  • maven/org.http4s:http4s-core_2.12:>= 0.1.0, < 0.21.34
  • maven/org.http4s:http4s-core_2.12:>= 0.22.0, < 0.22.15
  • maven/org.http4s:http4s-core_2.12:>= 0.23.0, < 0.23.17
  • maven/org.http4s:http4s-core:>= 1.0.0-M1, <= 1.0.0-M30

🔗 References (3)