guzzlehttp/psr7: CRLF Injection in HTTP Start-Line Serialization
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
guzzlehttp/psr7 is a PSR-7 HTTP message library implementation in PHP. Prior to 2.12.1, guzzlehttp/psr7 did not reject CR/LF characters in certain first-party HTTP start-line fields: the request method, protocol version, and response reason phrase. If an application placed attacker-controlled data into one of those fields and later serialized the PSR-7 message as raw HTTP/1.x, for example with Message::toString() or an equivalent serializer, the serialized message could contain attacker-controlled header lines. The issue can also be reached through Message::parseRequest() or Message::parseResponse() when malformed raw messages are parsed into first-party PSR-7 objects and then serialized again. Creating or modifying a Request, Response, or other PSR-7 object alone is not sufficient. The issue requires the malformed message to be serialized and written to the network, forwarded, replayed, or otherwise processed by software that does not independently reject the malformed start line. This vulnerability is fixed in 2.12.1.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| guzzle | psr7 | before 2.12.1 | 2.12.1 | Patch available | CNA |
| — | guzzlehttp/psr7 (Packagist) | before 2.12.1 | 2.12.1 | Patch available | GHSA-vm85-hxw5-5432 |
- psr7 Vendorguzzle Affected before 2.12.1 Fixed in 2.12.1 Patch available CNA
- guzzlehttp/psr7 (Packagist) Vendor— Affected before 2.12.1 Fixed in 2.12.1 Patch available GHSA-vm85-hxw5-5432
Remediation
- Fix · CNA psr7 (guzzle) Fixed in 2.12.1
- Fix · GHSA-vm85-hxw5-5432 guzzlehttp/psr7 (Packagist) Fixed in 2.12.1 Advisory →
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-55766
- 2026-10-03 Alias added: GHSA-vm85-hxw5-5432
References
More guzzle Psr-7 vulnerabilities
- TI-2022-08589 Improper Input Validation in guzzlehttp/psr7 CVSS 3.1HIGH 7.5
- TI-2023-13898 Laminas Diactoros vulnerable to HTTP Multiline Header Termination CVSS 3.1HIGH 7.5
- TI-2023-13625 Improper header name validation in guzzlehttp/psr7 CVSS 3.1HIGH 7.5
- TI-2026-42696 guzzlehttp/psr7: Host Confusion via Weak URI Host Validation CVSS 3.1MEDIUM 6.5
- TI-2026-36415 guzzlehttp/psr7 has CRLF Injection via URI Host Component CVSS 3.1MEDIUM 5.3
- TI-2026-36252 guzzlehttp/psr7 has Host Confusion via Authority Reinterpretation CVSS 3.1MEDIUM 5.3
Sources
- CVE-2026-55766 · CVE Program
- CVE-2026-55766 · NVD
- FIRST EPSS
- GHSA-vm85-hxw5-5432 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-55766 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences