Response Splitting from unsanitized headers in http4s
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
http4s is an open source scala interface for HTTP. In affected versions http4s is vulnerable to response-splitting or request-splitting attacks when untrusted user input is used to create any of the following fields: Header names (`Header.name`å), Header values (`Header.value`), Status reason phrases (`Status.reason`), URI paths (`Uri.Path`), URI authority registered names (`URI.RegName`) (through 0.21). This issue has been resolved in versions 0.21.30, 0.22.5, 0.23.4, and 1.0.0-M27 perform the following. As a matter of practice http4s services and client applications should sanitize any user input in the aforementioned fields before returning a request or response to the backend. The carriage return, newline, and null characters are the most threatening.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| http4s | http4s | up to 0.21.28; 0.22.0 to before 0.22.5; 0.23.0 to before 0.23.4; 1.0.0-M1 to before 1.0.0-M27 | 0.22.5, 0.23.4, 1.0.0-M27 | Patch available | CNA |
| — | org.http4s:http4s-client_2.12 (Maven) | before 0.21.29 | 0.21.29 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-client_2.12 (Maven) | 0.22.0 to before 0.22.5 | 0.22.5 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-client_2.12 (Maven) | 0.23.0 to before 0.23.4 | 0.23.4 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-client_2.13 (Maven) | before 0.21.29 | 0.21.29 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-client_2.13 (Maven) | 0.22.0 to before 0.22.5 | 0.22.5 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-client_2.13 (Maven) | 0.23.0 to before 0.23.4 | 0.23.4 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-client_3 (Maven) | before 0.21.29 | 0.21.29 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-client_3 (Maven) | 0.22.0 to before 0.22.5 | 0.22.5 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-client_3 (Maven) | 0.23.0 to before 0.23.4 | 0.23.4 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.10 (Maven) | up to 0.21.28 | — | No fix listed | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.11 (Maven) | up to 0.21.28 | — | No fix listed | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.12 (Maven) | before 0.21.29 | 0.21.29 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.12 (Maven) | 0.22.0 to before 0.22.5 | 0.22.5 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.12 (Maven) | 0.23.0 to before 0.23.4 | 0.23.4 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.13 (Maven) | before 0.21.29 | 0.21.29 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.13 (Maven) | 0.22.0 to before 0.22.5 | 0.22.5 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.13 (Maven) | 0.23.0 to before 0.23.4 | 0.23.4 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_2.13.0-M5 (Maven) | up to 0.21.28 | — | No fix listed | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_3 (Maven) | 0.22.0 to before 0.22.5 | 0.22.5 | Patch available | GHSA-5vcm-3xc3-w7x3 |
| — | org.http4s:http4s-server_3 (Maven) | 0.23.0 to before 0.23.4 | 0.23.4 | Patch available | GHSA-5vcm-3xc3-w7x3 |
- http4s Vendorhttp4s Affected up to 0.21.28; 0.22.0 to before 0.22.5; 0.23.0 to before 0.23.4; 1.0.0-M1 to before 1.0.0-M27 Fixed in 0.22.5, 0.23.4, 1.0.0-M27 Patch available CNA
- org.http4s:http4s-client_2.12 (Maven) Vendor— Affected before 0.21.29 Fixed in 0.21.29 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-client_2.12 (Maven) Vendor— Affected 0.22.0 to before 0.22.5 Fixed in 0.22.5 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-client_2.12 (Maven) Vendor— Affected 0.23.0 to before 0.23.4 Fixed in 0.23.4 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-client_2.13 (Maven) Vendor— Affected before 0.21.29 Fixed in 0.21.29 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-client_2.13 (Maven) Vendor— Affected 0.22.0 to before 0.22.5 Fixed in 0.22.5 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-client_2.13 (Maven) Vendor— Affected 0.23.0 to before 0.23.4 Fixed in 0.23.4 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-client_3 (Maven) Vendor— Affected before 0.21.29 Fixed in 0.21.29 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-client_3 (Maven) Vendor— Affected 0.22.0 to before 0.22.5 Fixed in 0.22.5 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-client_3 (Maven) Vendor— Affected 0.23.0 to before 0.23.4 Fixed in 0.23.4 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.10 (Maven) Vendor— Affected up to 0.21.28 Fixed in — No fix listed GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.11 (Maven) Vendor— Affected up to 0.21.28 Fixed in — No fix listed GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.12 (Maven) Vendor— Affected before 0.21.29 Fixed in 0.21.29 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.12 (Maven) Vendor— Affected 0.22.0 to before 0.22.5 Fixed in 0.22.5 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.12 (Maven) Vendor— Affected 0.23.0 to before 0.23.4 Fixed in 0.23.4 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.13 (Maven) Vendor— Affected before 0.21.29 Fixed in 0.21.29 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.13 (Maven) Vendor— Affected 0.22.0 to before 0.22.5 Fixed in 0.22.5 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.13 (Maven) Vendor— Affected 0.23.0 to before 0.23.4 Fixed in 0.23.4 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_2.13.0-M5 (Maven) Vendor— Affected up to 0.21.28 Fixed in — No fix listed GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_3 (Maven) Vendor— Affected 0.22.0 to before 0.22.5 Fixed in 0.22.5 Patch available GHSA-5vcm-3xc3-w7x3
- org.http4s:http4s-server_3 (Maven) Vendor— Affected 0.23.0 to before 0.23.4 Fixed in 0.23.4 Patch available GHSA-5vcm-3xc3-w7x3
CPE configurations NVD · 27
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:typelevel:http4s:*:*:*:*:*:*:*:* | before 0.21.29; 0.22.0 to before 0.22.5; 0.23.0 to before 0.23.4 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone1:*:*:*:*:*:* | 1.0.0 milestone1 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone10:*:*:*:*:*:* | 1.0.0 milestone10 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone11:*:*:*:*:*:* | 1.0.0 milestone11 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone12:*:*:*:*:*:* | 1.0.0 milestone12 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone13:*:*:*:*:*:* | 1.0.0 milestone13 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone14:*:*:*:*:*:* | 1.0.0 milestone14 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone15:*:*:*:*:*:* | 1.0.0 milestone15 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone16:*:*:*:*:*:* | 1.0.0 milestone16 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone17:*:*:*:*:*:* | 1.0.0 milestone17 | Vulnerable | http4s |
- cpe:2.3:a:typelevel:http4s:*:*:*:*:*:*:*:* Versions before 0.21.29; 0.22.0 to before 0.22.5; 0.23.0 to before 0.23.4 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone1:*:*:*:*:*:* Versions 1.0.0 milestone1 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone10:*:*:*:*:*:* Versions 1.0.0 milestone10 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone11:*:*:*:*:*:* Versions 1.0.0 milestone11 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone12:*:*:*:*:*:* Versions 1.0.0 milestone12 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone13:*:*:*:*:*:* Versions 1.0.0 milestone13 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone14:*:*:*:*:*:* Versions 1.0.0 milestone14 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone15:*:*:*:*:*:* Versions 1.0.0 milestone15 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone16:*:*:*:*:*:* Versions 1.0.0 milestone16 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone17:*:*:*:*:*:* Versions 1.0.0 milestone17 Vulnerable ·http4s
Show 17 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone18:*:*:*:*:*:* | 1.0.0 milestone18 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone19:*:*:*:*:*:* | 1.0.0 milestone19 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone2:*:*:*:*:*:* | 1.0.0 milestone2 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone20:*:*:*:*:*:* | 1.0.0 milestone20 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone21:*:*:*:*:*:* | 1.0.0 milestone21 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone22:*:*:*:*:*:* | 1.0.0 milestone22 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone23:*:*:*:*:*:* | 1.0.0 milestone23 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone24:*:*:*:*:*:* | 1.0.0 milestone24 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone25:*:*:*:*:*:* | 1.0.0 milestone25 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone26:*:*:*:*:*:* | 1.0.0 milestone26 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone3:*:*:*:*:*:* | 1.0.0 milestone3 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone4:*:*:*:*:*:* | 1.0.0 milestone4 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone5:*:*:*:*:*:* | 1.0.0 milestone5 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone6:*:*:*:*:*:* | 1.0.0 milestone6 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone7:*:*:*:*:*:* | 1.0.0 milestone7 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone8:*:*:*:*:*:* | 1.0.0 milestone8 | Vulnerable | http4s |
| cpe:2.3:a:typelevel:http4s:1.0.0:milestone9:*:*:*:*:*:* | 1.0.0 milestone9 | Vulnerable | http4s |
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone18:*:*:*:*:*:* Versions 1.0.0 milestone18 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone19:*:*:*:*:*:* Versions 1.0.0 milestone19 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone2:*:*:*:*:*:* Versions 1.0.0 milestone2 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone20:*:*:*:*:*:* Versions 1.0.0 milestone20 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone21:*:*:*:*:*:* Versions 1.0.0 milestone21 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone22:*:*:*:*:*:* Versions 1.0.0 milestone22 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone23:*:*:*:*:*:* Versions 1.0.0 milestone23 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone24:*:*:*:*:*:* Versions 1.0.0 milestone24 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone25:*:*:*:*:*:* Versions 1.0.0 milestone25 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone26:*:*:*:*:*:* Versions 1.0.0 milestone26 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone3:*:*:*:*:*:* Versions 1.0.0 milestone3 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone4:*:*:*:*:*:* Versions 1.0.0 milestone4 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone5:*:*:*:*:*:* Versions 1.0.0 milestone5 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone6:*:*:*:*:*:* Versions 1.0.0 milestone6 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone7:*:*:*:*:*:* Versions 1.0.0 milestone7 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone8:*:*:*:*:*:* Versions 1.0.0 milestone8 Vulnerable ·http4s
- cpe:2.3:a:typelevel:http4s:1.0.0:milestone9:*:*:*:*:*:* Versions 1.0.0 milestone9 Vulnerable ·http4s
Remediation
- Fix · CNA http4s (http4s) Fixed in 0.22.5, 0.23.4, 1.0.0-M27
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_2.12 (Maven) Fixed in 0.21.29 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_2.12 (Maven) Fixed in 0.22.5 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_2.12 (Maven) Fixed in 0.23.4 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_2.13 (Maven) Fixed in 0.21.29 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_2.13 (Maven) Fixed in 0.22.5 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_2.13 (Maven) Fixed in 0.23.4 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_3 (Maven) Fixed in 0.21.29 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_3 (Maven) Fixed in 0.22.5 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-client_3 (Maven) Fixed in 0.23.4 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-server_2.12 (Maven) Fixed in 0.21.29 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-server_2.12 (Maven) Fixed in 0.22.5 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-server_2.12 (Maven) Fixed in 0.23.4 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-server_2.13 (Maven) Fixed in 0.21.29 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-server_2.13 (Maven) Fixed in 0.22.5 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-server_2.13 (Maven) Fixed in 0.23.4 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-server_3 (Maven) Fixed in 0.22.5 Advisory →
- Fix · GHSA-5vcm-3xc3-w7x3 org.http4s:http4s-server_3 (Maven) Fixed in 0.23.4 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2021-41084
- 2026-10-03 Alias added: GHSA-5vcm-3xc3-w7x3
References
Advisory 3
More Http4s vulnerabilities
- TI-2023-08714 Http4s has fatal error parsing User-Agent and Server headers CVSS 3.1HIGH 7.5
- TI-2025-37261 Http4s vulnerable to HTTP Request Smuggling due to improper handling of HTTP trailer section CVSS 4.0MEDIUM 6.3
- TI-2020-04336 Local file inclusion vulnerability in http4s CVSS 3.1HIGH 7.6
- TI-2021-16571 Default CORS config allows any origin with credentials CVSS 3.1CRITICAL 9.1
- TI-2021-04394 Unbounded connection acceptance in http4s-blaze-server CVSS 3.1HIGH 7.5
- TI-2021-12311 StaticFile.fromUrl can leak presence of a directory CVSS 3.1MEDIUM 5.8
Sources
- CVE-2021-41084 · CVE Program
- CVE-2021-41084 · NVD
- FIRST EPSS
- GHSA-5vcm-3xc3-w7x3 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences