Vulnerabilidad en las entradas de usuario en los campos Header names ("Header.name"), Header values ("Header.value"), Status reason phrases ("Status.reason"), URI paths ("Uri.Path"), URI authority registered names ("URI.RegName") en http4s (CVE-2021-41084)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-74
Neutralización incorrecta de elementos especiales en la salida utilizada por un componente interno (Inyección)
Fecha de publicación:
21/09/2021
Última modificación:
25/10/2022
Descripción
http4s es una interfaz scala de código abierto para HTTP. En las versiones afectadas, http4s es vulnerable a ataques de división de respuestas o de peticiones cuando entradas de usuario no confiables son usadas para crear cualquiera de los siguientes campos: Header names ("Header.name"), Header values ("Header.value"), Status reason phrases ("Status.reason"), URI paths ("Uri.Path"), URI authority registered names ("URI.RegName") (versiones hasta 0.21). Este problema ha sido resuelto en versiones 0.21.30, 0.22.5, 0.23.4 y 1.0.0-M27 llevan a cabo lo siguiente. Como cuestión de práctica, los servicios http4s y las aplicaciones cliente deberían sanear cualquier entrada del usuario en los campos mencionados antes de devolver una petición o respuesta al backend. Los caracteres carriage return, newline y null son los más amenazantes
Impacto
Puntuación base 3.x
4.70
Gravedad 3.x
MEDIA
Puntuación base 2.0
4.30
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:typelevel:http4s:*:*:*:*:*:*:*:* | 0.21.29 (excluyendo) | |
| cpe:2.3:a:typelevel:http4s:*:*:*:*:*:*:*:* | 0.22.0 (incluyendo) | 0.22.5 (excluyendo) |
| cpe:2.3:a:typelevel:http4s:*:*:*:*:*:*:*:* | 0.23.0 (incluyendo) | 0.23.4 (excluyendo) |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone1:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone10:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone11:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone12:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone13:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone14:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone15:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone16:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone17:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone18:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone19:*:*:*:*:*:* | ||
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone2:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/http4s/http4s/commit/d02007db1da4f8f3df2dbf11f1db9ac7afc3f9d8
- https://github.com/http4s/http4s/security/advisories/GHSA-5vcm-3xc3-w7x3
- https://httpwg.org/http-core/draft-ietf-httpbis-semantics-latest.html#fields.values
- https://owasp.org/www-community/attacks/HTTP_Response_Splitting



