El Coordinating Center CERT (CERT/CC) ha publicado el aviso VU#762428, que describe una vulnerabilidad de omisión de la verificación de firma en la popular biblioteca de Python Authlib. Según el aviso, la vulnerabilidad CVE-2026-96760 afecta a todas las versiones de Authlib hasta la 1.7.2 incluida y permite que un atacante envíe datos arbitrarios sin ninguna firma criptográfica, que la biblioteca aceptará como auténticos. En el momento de la publicación del aviso, el 28 de septiembre de 2026, no existía un parche oficial y no se logró contactar con el desarrollador para una divulgación coordinada. La vulnerabilidad supone una amenaza grave para las aplicaciones que utilizan Authlib para verificar JSON Web Signature (JWS), mecanismo que garantiza la integridad y autenticidad de los datos en los protocolos OAuth, OpenID Connect y en la interacción entre servicios.
Esencia técnica de la vulnerabilidad
Authlib es una biblioteca ampliamente utilizada para implementar OAuth, OpenID Connect, JWT, JWS y JWE en aplicaciones Python. Se emplea en aplicaciones web y microservicios para crear y validar criptográficamente tokens.
Según el aviso de CERT/CC, el problema radica en la función JsonWebSignature.deserialize_json(). Al procesar un objeto JWS en el formato de serialización JSON general, esta función acepta un objeto con un array vacío "signatures": [] y considera la carga útil (payload) como verificada correctamente. La lógica de funcionamiento de la función presupone por defecto la validez de las firmas y, cuando el array está vacío, la comprobación simplemente no se ejecuta: no se realiza ninguna iteración del bucle y los datos pasan como si estuvieran firmados.
Según el aviso, se ven afectados ambos caminos de deserialización:
jws.deserialize_json({"payload":"...", "signatures":[]}, key=None)jws.deserialize('{"payload":"...","signatures":[]}', key=None)
Se trata de un caso clásico de vulnerabilidad de tipo CWE-347 (Improper Verification of Cryptographic Signature), es decir, verificación inadecuada de la firma criptográfica. El atacante no necesita conocer ni adivinar material de clave: basta con formar un objeto JWS con una lista de firmas vacía y un contenido de payload arbitrario.
Evaluación del impacto
El aviso de CERT/CC describe los siguientes escenarios potenciales de explotación:
- Omisión de autenticación: suplantación de afirmaciones de identidad o escalada de privilegios (por ejemplo,
sub=admin) - Inyección de mensajes firmados entre microservicios que utilizan JWS para garantizar la integridad
- Falsificación de afirmaciones de autorización: ámbitos de acceso (scopes), roles, permisos
- Compromiso de la integridad en sistemas que dependen de datos JWS firmados
Es importante subrayar que se trata de una descripción de consecuencias potenciales, no de incidentes confirmados. Por el momento no hay indicios de explotación activa de la vulnerabilidad, código PoC público ni una puntuación CVSS asignada. No obstante, la propia naturaleza de la vulnerabilidad —omisión completa de la verificación criptográfica sin necesidad de material de clave— la hace potencialmente crítica para cualquier aplicación que acepte tokens JWS de fuentes no confiables a través de Authlib.
Están especialmente expuestos los sistemas en los que los tokens JWS proceden de fuentes externas o parcialmente confiables: APIs públicas con autenticación OAuth, arquitecturas de microservicios con verificación de firma entre servicios, así como sistemas que utilizan datos de configuración firmados.
Estado del parche y de la coordinación
Según el aviso de CERT/CC, no se logró contactar con el desarrollador de Authlib para una divulgación coordinada de la vulnerabilidad. En el momento de la publicación del aviso (28 de septiembre de 2026) no había un parche oficial y no se había recibido ninguna declaración del proveedor. Esto significa que la vulnerabilidad se ha hecho pública en ausencia de una corrección disponible.
Recomendaciones
Hasta que se publique un parche oficial, es razonable considerar las siguientes medidas:
- Supervisión del repositorio: siga las actualizaciones en el repositorio de GitHub de Authlib y en la página de lanzamientos para instalar el parche en cuanto esté disponible
- Validación a nivel de aplicación: añada una comprobación de los objetos JWS entrantes antes de pasarlos a Authlib; asegúrese de que el array
"signatures"no esté vacío y contenga al menos una firma - Auditoría de uso: determine si en su código se utilizan llamadas a
deserialize_json()odeserialize()con datos procedentes de fuentes no confiables - Limitación de la superficie de ataque: si la verificación JWS mediante Authlib se usa en un límite de confianza (APIs públicas, interacción entre microservicios), valore añadir temporalmente una capa intermedia de validación o cambiar a una biblioteca alternativa para las rutas más críticas
La vulnerabilidad fue descubierta por los investigadores Tong Hoang Gia y Nguyen Minh Tuan, según se indica en el aviso de CERT/CC.
Dado que no hay parche y no ha sido posible contactar con el desarrollador, las organizaciones que utilicen Authlib para la verificación de firmas JWS deberían auditar de inmediato sus aplicaciones para identificar el procesamiento de objetos JWS procedentes de fuentes no confiables e implementar validaciones adicionales del array de firmas hasta que exista una corrección oficial.