La vulnerabilidad CVE-2026-29000 obtiene la puntuación máxima (10) en la escala CVSS.

En la popular biblioteca de autenticación Java pac4j-jwt se descubrió una vulnerabilidad crítica que permite a un atacante hacerse pasar por cualquier usuario del sistema, incluidos los administradores. El problema recibió el identificador CVE-2026-29000 y la máxima puntuación de gravedad en la escala CVSS — 10,0.
El defecto fue detectado por el equipo de CodeAnt AI durante el análisis de cambios en el código fuente abierto de los proyectos. La comprobación demostró que un atacante remoto puede crear un JSON Web Token falso con datos arbitrarios y pasar la verificación de autenticidad sin acceso a claves privadas, contraseñas ni secretos.
En el esquema habitual pac4j-jwt protege los tokens con dos capas. Primero se aplica cifrado que oculta el contenido, luego una firma criptográfica confirma la autenticidad de los datos. Cuando el servidor recibe un token, el sistema primero descifra la envoltura externa y después verifica la firma.
El análisis mostró un error en el manejo de tokens sin firma. Si un atacante crea el llamado PlainJWT — un token sin firma digital — y lo cifra con la clave RSA pública del servidor, la biblioteca no reconoce el objeto como firmado. Durante el procesamiento surge un valor nulo.
Debido a una comprobación mal situada de ese valor en el código de la aplicación, el bloque de verificación de la firma simplemente se omite. En lugar de rechazar el token inválido, el sistema continúa y lee datos no confirmados. Como resultado, el atacante puede especificar en el token cualquier rol, por ejemplo «admin», cifrar los datos con la clave pública del servidor y obtener acceso total. El servidor acepta el contenido como confiable sin verificar su origen.
El problema afecta a configuraciones que usan tokens cifrados con RSA junto con el componente JwtAuthenticator. Tras una notificación privada, el desarrollador de la biblioteca Jérôme Leleu confirmó rápidamente el problema y publicó correcciones para varias ramas del proyecto. La preparación de las actualizaciones llevó dos días laborables.
Se recomienda a los desarrolladores que usan pac4j-jwt que actualicen urgentemente sus dependencias. Para la rama 4.x se considera segura la versión 4.5.9 y posteriores, para la rama 5.x — 5.7.9 y posteriores, para la rama 6.x — 6.3.3 y posteriores. La comprobación de la vulnerabilidad se puede realizar mediante los gestores de paquetes y el análisis de la configuración de las aplicaciones donde se utilizan simultáneamente cifrado y firma de tokens.