CVE-2026-63441 SSRF en 2FAuth por prefijos NAT64 IPv6 no reconocidos en ValidatesUrls
La función isPublicIp() de ValidatesUrls no reconoce los prefijos NAT64 64:ff9b::/96 y 64:ff9b:1::/48, por lo que un parámetro image de una URI otpauth puede apuntar a direcciones IPv4 privadas, loopback o de metadatos de nube. Con la obtención de imágenes habilitada y una ruta NAT64, IconService::buildFromRemoteImage() realiza un GET al destino interno. Corregido en la versión 8.0.0.
CVSS 4.0
- Probabilidad de explotación · EPSS del 09/110,3 % · percentil 24
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
Bubka 2FAuth
>= 6.1.0, < 8.0.0
Qué hacer
- Verificá si usás 2FAuth 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 · 4.9 MEDIA
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Requisitos del ataquePresentes
- Privilegios requeridosBajos
- Interacción del usuarioNinguna
- Confidencialidad (sistema vulnerable)Ninguna
- Integridad (sistema vulnerable)Ninguna
- Disponibilidad (sistema vulnerable)Ninguna
- Confidencialidad (sistemas posteriores)Alta
- Integridad (sistemas posteriores)Ninguna
- Disponibilidad (sistemas posteriores)Ninguna
Descripción original
2FAuth is a web app to manage Two-Factor Authentication (2FA) accounts and generate their security codes. From 6.1.0 until 8.0.0, App\Services\Traits\ValidatesUrls::isPublicIp() does not recognize the 64:ff9b::/96 and 64:ff9b:1::/48 NAT64 prefixes, so an otpauth URI image parameter can pass an IPv6 literal or DNS64-synthesized address whose embedded IPv4 target is private, link-local, loopback, or cloud metadata. In a deployment with image fetching enabled and a NAT64 translation path to the internal IPv4 target, an account holder can submit the crafted URI directly, or an external attacker can induce a victim to import a crafted URI or migration payload. IconService::buildFromRemoteImage() then issues an HTTP GET to the embedded target, allowing image-shaped responses to be recovered or other endpoints to be probed blindly. This issue is fixed in version 8.0.0.
Referencias (3)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.