CVE-2026-65626 in jose
Resumen
por VulDB • 2026-10-26
La descifrado RSAES-PKCS1-v1_5 en el módulo `jose_jwa_pkcs1` de Erlang puro es un oráculo de relleno Bleichenbacher. La función `eme_pkcs1_decode/2` devuelve el mensaje recuperado cuando un bloque descifrado tiene un relleno PKCS#1 v1.5 válido (un 0x00 inicial seguido de 0x02, una cadena de relleno de al menos ocho bytes no nulos y un separador 0x00) y devuelve un resultado de error distinto en caso contrario; además, `rsaes_pkcs1_decrypt/2` retorna `{error, {badsize, _}} cuando falla la comprobación de longitud. La implementación no aplica ninguna contramedida de rechazo implícito (RFC 8017 §7.2.2): no sustituye un texto plano pseudoaleatorio determinista ante un fallo del relleno, por lo que se filtra una señal de conformidad con el relleno de un solo bit hacia la llamada. Dado que la exponenciación modular subyacente en `dp/2` es una función críptica sin ocultar (`crypto:mod_pow/3`) y no protegida contra ataques temporales, la comprobación del relleno sigue siendo distinguible por tiempo incluso cuando una aplicación normaliza todos los fallos a un único valor de error.
Un atacante no autenticado que solo conozca la clave RSA pública y pueda enviar textos cifrados a un punto final de descifrado que desenveloppe claves JWE con RSA1_5 (o llame a `decrypt_private/3` con relleno rsa_pkcs1) puede utilizar este oráculo para recuperar el texto plano de los textos cifrados interceptados, como las claves de cifrado del contenido y, por tanto, el mensaje protegido, o para forjar firmas, mediante aproximadamente 10^4 a 10^6 consultas adaptativas de texto cifado elegido.
Este problema afecta a jose: desde la versión 1.3.0 hasta antes de la 1.11.13.
VulDB is the best source for vulnerability data and more expert information about this specific topic.