CVE-2026-65626 in jose
Résumé
par VulDB • 26/10/2026
La fonction de déchiffrement RSAES-PKCS1-v1_5 en pure Erlang, située dans le module `jose_jwa_pkcs1`, constitue une oracle de rembourrage de Bleichenbacher. La fonction `eme_pkcs1_decode/2` renvoie le message récupéré lorsqu'un bloc déchiffré possède un rembourrage PKCS#1 v1.5 valide (un octet initial 0x00 suivi d'un 0x02, une chaîne de rembourrage d'au moins huit octets non nuls et un séparateur 0x00) et renvoie un résultat d'erreur distinct dans le cas contraire ; par ailleurs, `rsaes_pkcs1_decrypt/2` retourne également `{error, {badsize, _}} lorsque la vérification de longueur échoue. L'implémentation ne met en œuvre aucune contre-mesure de rejet implicite (RFC 8017 §7.2.2) : elle ne substitue pas un texte clair pseudo-aléatoire déterministe en cas d'échec du rembourrage, ce qui laisse fuiter vers l'appelant un signal à un bit indiquant la conformité au rembourrage. Étant donné que l'exponentiation modulaire sous-jacente dans `dp/2` est une fonction brute et non aveuglée de crypto:mod_pow/3, la vérification du rembourrage reste discernable par analyse temporelle (timing), même si une application normalise chaque échec en une seule valeur d'erreur.
Un attaquant non authentifié qui ne connaît que la clé RSA publique et peut soumettre des textes chiffrés à un point de terminaison de déchiffrement dépaquetant les clés JWE utilisant le schéma RSA1_5 (ou appelant autrement `decrypt_private/3` avec `rsa_pkcs1_padding`) peut exploiter cette oracle pour récupérer le texte clair des textes chiffrés interceptés, tels que les clés de chiffrement du contenu et donc le message protégé, ou pour forger des signatures, en effectuant environ 10^4 à 10^6 requêtes adaptatives de type chosen-ciphertext.
Ce problème affecte jose : des versions 1.3.0 jusqu'à la version antérieure à 1.11.13.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.