CVE-2026-49214
guzzlehttp/psr7 has CRLF Injection via URI Host Component
Description
guzzlehttp/psr7 is a PSR-7 HTTP message library implementation in PHP. Versions prior to 2.10.2 did not reject ASCII control characters, whitespace, or DEL in first-party URI host components. A vulnerable flow is: First, an application accepts a user-controlled URL. Second, the URL is used to construct a PSR-7 `Uri` or `Request`. Third, the host component contains CRLF or another header-unsafe character. Fourth, the host is copied into the PSR-7 `Host` header when no explicit `Host` header is provided. Finally, the request is serialized or sent by an HTTP client that does not independently reject the malformed host. In that flow, an attacker can cause the serialized request to contain additional attacker-controlled header lines. For example, a host containing `"\r\nX-Injected: yes"` can cause the generated `Host` header to span multiple HTTP header lines. Applications are affected when they use user-controlled URLs for outbound HTTP requests, URL forwarding, proxying, crawling, webhook delivery, or similar request-dispatch flows. In deployments involving HTTP/1.1 connection reuse, proxies, gateways, or load balancers, this malformed request may also contribute to request smuggling or cache poisoning, depending on how downstream components parse the request. The issue is patched in `2.10.2` and later. `1.x` is end-of-life and will not receive a patch. As a workaround, validate and reject all untrusted URI strings before constructing PSR-7 `Uri` or `Request` instances. Reject input containing ASCII control characters, whitespace, or DEL, including CRLF, tab, space, NUL, or DEL characters. Applications that forward requests should also ensure the final HTTP client or serializer rejects invalid URI and header data before writing requests to the network.
INFO
Published Date :
June 11, 2026, 1:16 p.m.
Last Modified :
Oct. 25, 2026, 11:10 p.m.
Remotely Exploit :
Yes !
Source :
[email protected]
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS | 134c704f-9b21-4f2e-91b3-4a467353bcc0 | |||||
| CVSS 3.1 | MEDIUM | [email protected] |
Solution
- Update guzzlehttp/psr7 to version 2.10.2 or later.
- Validate user-supplied URIs before constructing requests.
- Reject URIs with control characters or CRLF.
- Ensure HTTP clients reject invalid header data.
Public PoC/Exploit Available at Github
CVE-2026-49214 has a 2 public
PoC/Exploit available at Github.
Go to the Public Exploits tab to see the list.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-49214.
| URL | Resource |
|---|---|
| https://github.com/guzzle/psr7/security/advisories/GHSA-hq7v-mx3g-29hw | Mitigation Vendor Advisory |
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-49214 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-49214
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Demo project with vulnerabilities to test tools
PHP
NV Digital Open Operator System (NVoOS) is an Object-Oriented AI framework for WordPress connecting your data with OpenAI, Gemini, Anthropic, DeepSeek, Hugging Face, Cloudflare, OpenRouter & Ollama (Local) models. Create & manage AI Assistants that can interact with users, access WordPress (API) data, & perform as a MCP Server & Chat Agent
ai ai-agents ai-tools antropic-claude cloudflare-workers-ai google-gemini huggingface lm-studio mcp ollama-api ollama-client openai-api wordpress-plugin
PHP CSS JavaScript Shell HTML Python Dockerfile TypeScript Batchfile SCSS
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-49214 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-49214 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Translated by [email protected]
Oct. 25, 2026
Action Type Old Value New Value Added Translation Title: psr7 de guzzle, Description: guzzlehttp/psr7 es una implementación de la biblioteca de mensajes HTTP PSR-7 en PHP. Las versiones anteriores a la 2.10.2 no rechazaban caracteres de control ASCII, espacios en blanco o DEL en los componentes de host URI de origen. Un flujo vulnerable es: Primero, una aplicación acepta una URL controlada por el usuario. Segundo, la URL se utiliza para construir un ’Uri’ o ’Request’ PSR-7. Tercero, el componente de host contiene CRLF u otro carácter inseguro para encabezados. Cuarto, el host se copia en el encabezado ’Host’ PSR-7 cuando no se proporciona un encabezado ’Host’ explícito. Finalmente, la solicitud es serializada o enviada por un cliente HTTP que no rechaza de forma independiente el host malformado. En ese flujo, un atacante puede hacer que la solicitud serializada contenga líneas de encabezado adicionales controladas por el atacante. Por ejemplo, un host que contenga ’’\r\nX-Injected: yes’’ puede hacer que el encabezado ’Host’ generado abarque múltiples líneas de encabezado HTTP. Las aplicaciones se ven afectadas cuando utilizan URLs controladas por el usuario para solicitudes HTTP salientes, reenvío de URLs, proxying, rastreo, entrega de webhooks o flujos de despacho de solicitudes similares. En implementaciones que involucran la reutilización de conexiones HTTP/1.1, proxies, gateways o balanceadores de carga, esta solicitud malformada también puede contribuir al contrabando de solicitudes o al envenenamiento de caché, dependiendo de cómo los componentes posteriores analicen la solicitud. El problema está parcheado en la ’2.10.2’ y versiones posteriores. ’1.x’ ha llegado al fin de su vida útil y no recibirá un parche. Como solución alternativa, valide y rechace todas las cadenas URI no confiables antes de construir instancias de ’Uri’ o ’Request’ PSR-7. Rechace la entrada que contenga caracteres de control ASCII, espacios en blanco o DEL, incluyendo caracteres CRLF, tab, espacio, NUL o DEL. Las aplicaciones que reenvían solicitudes también deben asegurarse de que el cliente HTTP o serializador final rechace los datos URI y de encabezado no válidos antes de escribir las solicitudes en la red. -
CVE Modified by [email protected]
Jun. 17, 2026
Action Type Old Value New Value Added Affected [{'vendor': 'guzzle', 'product': 'psr7', 'versions': [{'status': 'affected', 'version': '< 2.10.2'}]}] -
CVE Modified by 134c704f-9b21-4f2e-91b3-4a467353bcc0
Jun. 17, 2026
Action Type Old Value New Value Added SSVC {'id': 'CVE-2026-49214', 'role': 'CISA Coordinator', 'options': [{'exploitation': 'none'}, {'automatable': 'yes'}, {'technicalImpact': 'partial'}], 'version': '2.0.3', 'timestamp': '2026-06-11T12:47:38.984022Z'} -
Initial Analysis by [email protected]
Jun. 15, 2026
Action Type Old Value New Value Added CPE Configuration OR *cpe:2.3:a:guzzlephp:psr-7:*:*:*:*:*:*:*:* versions up to (excluding) 2.10.2 Added Reference Type GitHub, Inc.: https://github.com/guzzle/psr7/security/advisories/GHSA-hq7v-mx3g-29hw Types: Mitigation, Vendor Advisory -
New CVE Received by [email protected]
Jun. 11, 2026
Action Type Old Value New Value Added Description guzzlehttp/psr7 is a PSR-7 HTTP message library implementation in PHP. Versions prior to 2.10.2 did not reject ASCII control characters, whitespace, or DEL in first-party URI host components. A vulnerable flow is: First, an application accepts a user-controlled URL. Second, the URL is used to construct a PSR-7 `Uri` or `Request`. Third, the host component contains CRLF or another header-unsafe character. Fourth, the host is copied into the PSR-7 `Host` header when no explicit `Host` header is provided. Finally, the request is serialized or sent by an HTTP client that does not independently reject the malformed host. In that flow, an attacker can cause the serialized request to contain additional attacker-controlled header lines. For example, a host containing `"\r\nX-Injected: yes"` can cause the generated `Host` header to span multiple HTTP header lines. Applications are affected when they use user-controlled URLs for outbound HTTP requests, URL forwarding, proxying, crawling, webhook delivery, or similar request-dispatch flows. In deployments involving HTTP/1.1 connection reuse, proxies, gateways, or load balancers, this malformed request may also contribute to request smuggling or cache poisoning, depending on how downstream components parse the request. The issue is patched in `2.10.2` and later. `1.x` is end-of-life and will not receive a patch. As a workaround, validate and reject all untrusted URI strings before constructing PSR-7 `Uri` or `Request` instances. Reject input containing ASCII control characters, whitespace, or DEL, including CRLF, tab, space, NUL, or DEL characters. Applications that forward requests should also ensure the final HTTP client or serializer rejects invalid URI and header data before writing requests to the network. Added CVSS V3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Added CWE CWE-20 Added CWE CWE-93 Added CWE CWE-113 Added Reference https://github.com/guzzle/psr7/security/advisories/GHSA-hq7v-mx3g-29hw