CVE-2026-121971 Exposición de credenciales del ámbito por defecto en ScopingHttpClient de Symfony HttpClient
ScopingHttpClient en Symfony HttpClient combina las opciones de su ámbito por defecto (como auth_bearer o auth_basic) antes de resolver una URL relativa contra base_uri, por lo que una referencia de ruta de red como "//evil.example/steal" se envía a otro origen junto con esas credenciales, lo que puede revelarlas a un servidor controlado por un atacante. Afecta a Symfony 5.x anteriores a 5.4.56, 6.x anteriores a 6.4.50, 7.x anteriores a 7.4.23 y 8.x anteriores a 8.1.11.
CVSS 4.0
- Probabilidad de explotación · EPSS del 09/110,2 % · percentil 16
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
sensiolabs symfony
hasta antes de 5.4.56desde 6.0.0 hasta antes de 6.4.50desde 7.0.0 hasta antes de 7.4.23desde 8.0.0 hasta antes de 8.1.11
Qué hacer
- Verificá si usás symfony y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 4.0 · 8.2 ALTA
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Requisitos del ataquePresentes
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- Confidencialidad (sistema vulnerable)Alta
- Integridad (sistema vulnerable)Ninguna
- Disponibilidad (sistema vulnerable)Ninguna
- Confidencialidad (sistemas posteriores)Ninguna
- Integridad (sistemas posteriores)Ninguna
- Disponibilidad (sistemas posteriores)Ninguna
Descripción original
The component ScopingHttpClient in Symfony HttpClient merges the options of its default scope (such as auth_bearer or auth_basic) into a request before resolving a relative URL against the base_uri, allowing a network-path reference such as "//evil.example/steal" to be sent to another origin together with the default scope’s credentials, and resulting in potential disclosure of those credentials to an attacker-controlled server. This affects Symfony in versions 5.x prior to 5.4.56, 6.x prior to 6.4.50, 7.x prior to 7.4.23, and 8.x prior to 8.1.11.
The resolved URL falls outside the origin of the base URI, yet it keeps the merged options, whereas the absolute spelling "https://evil.example/steal" receives none. The same happens with a different port or user-info part on the same host.
This is reachable whenever an attacker controls the beginning of a URL passed to a client built with a base_uri and credentials, including those created with HttpClient::createForBaseUri() or configured under framework.http_client.scoped_clients.
To solve the issue, after resolving a relative URL against the base URI of the default scope, ScopingHttpClient now compares the scheme and authority of the result with those of the base URI, parsed the way the request is sent.
Referencias (2)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.