Todos los reportes
libcurl conservaba la contraseña del proxy al cambiar o borrar CURLOPT_PROXYUSERPWD y la enviaba a otro proxy
Desde curl 8.8.0, volver a fijar CURLOPT_PROXYUSERPWD solo con usuario, o a NULL, no borraba la contraseña anterior. Un handle reutilizado podía mandar esa contraseña vieja a un proxy distinto.
5 min
ReDoS en RubyGems.org: expresiones regulares del usuario en las políticas OIDC podían bloquear los workers de Puma
Las políticas de acceso OIDC de RubyGems.org ejecutaban expresiones regulares escritas por el usuario contra los claims del JWT sin límite de tiempo. Un patrón con backtracking catastrófico podía dejar ocupados los pocos workers del servidor.
3 min
Inyección de código local en el cliente de escritorio de Nextcloud para macOS vía secuestro de @rpath
Un usuario normal de macOS podía cargar una librería propia en el proceso de Nextcloud que gestiona el inicio de sesión web, gracias a una entitlement que desactiva la validación de firmas y a una ruta de compilación muerta en el binario.
6 min
CVE-2026-9546: fuga del Referer anterior en libcurl al reutilizar un easy handle
Poner CURLOPT_REFERER a NULL no limpiaba el estado interno del Referer en libcurl, así que la siguiente petición en el mismo easy handle podía reenviar el Referer anterior a otro servidor y provocar un use-after-free.
5 min
curl reutilizaba entre orígenes distintos una conexión autenticada con Negotiate (CVE-2026-87861)
Un cambio en los comparadores de reutilización de conexiones de libcurl permitía que una petición para un host saliera por una conexión ya autenticada con Negotiate para otro host detrás del mismo proxy.
4 min
curl enviaba un ticket Kerberos nuevo (Authorization: Negotiate) al host de una redirección si la URL llevaba usuario
Con --negotiate y -L, bastaba con que el servidor redirigiera a una URL con usuario y contraseña inventados para que curl pidiera al KDC un ticket Kerberos para el host del atacante y se lo enviara, saltándose la protección entre hosts.
6 min
CVE-2026-94266: curl filtra la contraseña de .netrc en la URL efectiva tras una redirección relativa
Al seguir una redirección relativa en el mismo host, curl copiaba el usuario y la contraseña sacados de .netrc a la URL efectiva, visible en CURLINFO_EFFECTIVE_URL, %{url_effective} y la salida de -v.
4 min
CVE-2026-87865: libcurl con libssh2 presenta como "nueva" la clave falsa de un host SSH ya fijado en known_hosts
Con un known_hosts de nombres hasheados, libcurl usaba la primera entrada anónima sin comprobar su hash. Una clave hostil para un host ya fijado llegaba al callback como MISSING en vez de MISMATCH.
4 min
Use-after-free en subidas HTTP/2 de curl cuando el servidor corta el stream
Al subir un fichero por HTTP/2, curl 8.22.0 maneja mal un RST_STREAM del servidor y acaba reutilizando un objeto Curl_easy ya liberado. El resto del cuerpo pendiente se envía como si fuera una petición nueva y deja un puntero colgante.
5 min
curl con wolfSSL acepta un pin de clave pública que el servidor no tiene por un certificado malformado
En curl 8.22.0 compilado con wolfSSL, un certificado con la longitud de "validity" manipulada hace que wolfSSL y curl lean claves públicas distintas del mismo DER, y curl acepta un pin de una clave que el servidor no posee.
4 min
curl ignoraba la verificación de clave de host SSH al seguir una redirección de HTTPS a SFTP o SCP
Si curl empezaba con una URL HTTPS y seguía una redirección a SFTP, no aplicaba --knownhosts ni --hostpubsha256: un servidor SSH suplantado podía recibir credenciales y servir contenido falso.
6 min
Node.js: dns.resolve* corta los nombres en el byte NUL y deja burlar validaciones de host (fix incompleto de CVE-2026-48930)
El parche de CVE-2026-48930 bloqueaba los bytes NUL en dns.lookup, pero no en dns.resolve*: Node consultaba "attacker.test" aunque el código hubiera validado "attacker.test\x00.trusted.corp".
4 min