Un atacante puede falsificar datos confiables sin necesidad de una clave criptográfica.

Authlib debe distinguir los datos confiables de las falsificaciones, pero un JWS especialmente formado permite pasar la verificación sin ninguna firma criptográfica.
La vulnerabilidad CVE-2026-96760 afecta a Authlib 1.7.2 y versiones anteriores. La biblioteca de Python ayuda a desarrolladores a trabajar con OAuth, OpenID Connect, JWT, JWS y JWE, así como a crear y verificar tokens en aplicaciones web y microservicios.
El problema reside en el manejo de la serialización JSON de JWS por la función JsonWebSignature.deserialize_json(). Normalmente un JWS contiene la carga útil y una o varias firmas mediante las cuales el receptor verifica el origen y la integridad de los datos. Authlib, sin embargo, acepta un objeto con un arreglo vacío "signatures":[].
En ese caso la biblioteca no verifica ninguna firma, pero aun así devuelve el contenido como si estuviera verificado con éxito. El atacante no necesita la clave privada u otro secreto. Basta con enviar una carga útil arbitraria y dejar vacío el listado de firmas. Como resultado, la aplicación puede confiar en identificadores de usuario falsos, roles, ámbitos de acceso y otros datos. El funcionamiento de JWT se basa precisamente en que la firma no permite modificar el contenido protegido sin ser detectado.
Las consecuencias dependen de cómo el proyecto use Authlib. Un servicio puede aceptar una identidad falsificada, otorgar privilegios elevados, procesar un mensaje falsificado entre microservicios o confiar en una configuración modificada. El defecto no implica la compromisión automática de cualquier aplicación que use Authlib. La ruta vulnerable debe procesar JWS en su representación JSON a través de las funciones afectadas.
Al momento de la divulgación no había una corrección disponible para Authlib. CERT/CC intentó contactar al desarrollador, pero no recibió declaración y recomendó vigilar las actualizaciones del proyecto. La situación resulta especialmente notable frente al paquete independiente joserfc del mismo ecosistema: en la versión 1.7.4 los desarrolladores ya añadieron el rechazo a JWS con un arreglo vacío de firmas, mientras que el antiguo módulo authlib.jose está siendo retirado gradualmente.
En el boletín VU#762428 CERT/CC indica directamente que un atacante puede enviar datos arbitrarios no firmados sin ningún material de clave. Mientras la versión corregida de Authlib no esté disponible, a los desarrolladores de aplicaciones les conviene descartar por separado JWS sin firma y verificar dónde se usa la serialización JSON de JWS.
Un error similar se descubrió en primavera en la biblioteca Java pac4j-jwt. Allí un token sin firma también podía eludir la verificación criptográfica y entregar a la aplicación datos arbitrarios, incluida la función de administrador.
Los problemas en la frontera entre datos firmados y los datos realmente utilizados no ocurren solo en JWT. En agosto varias implementaciones de SAML permitían eludir la autenticación debido a discrepancias en el manejo de XML y firmas digitales.