CVE-2026-55766
MediumCVSS 4.8Exploitation Probability (EPSS)
Low risk5th percentile — higher than 5% of all known CVEs
Summary
The guzzlehttp/psr7 library before version 2.12.1 did not reject CR/LF characters in certain HTTP start-line fields (request method, protocol version, response reason phrase). An attacker can inject controlled data into these fields, and after serializing the PSR-7 message to raw HTTP/1.x (e.g., via Message::toString()), it may lead to HTTP header injection.
Risk Assessment
The risk involves potential manipulation of HTTP headers in serialized messages, which can lead to HTTP response splitting, cache poisoning, or other integrity violations in network communication.
Recommendation
Immediately update the guzzlehttp/psr7 library to version 2.12.1 or later. After updating, verify that your application does not serialize PSR-7 messages with user-controlled data.
Original NVD description (English source)
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.

