OpenSSL - CVE-2026-31790

Date de publication :

Il s’agit d’une vulnérabilité dans le traitement de l’encapsulation RSA/RSASVE via EVP_PKEY_encapsulate().

OpenSSL est une bibliothèque cryptographique. Elle fournit des fonctions de chiffrement, de gestion de certificats, de TLS et d’opérations de clé publique à de nombreuses applications et services.

Le code vérifie de façon incorrecte le retour de RSA_public_encrypt() et considère à tort un échec comme un succès si la valeur renvoyée est simplement non nulle. Dans ce cas, les longueurs de sortie peuvent être positionnées alors que le tampon de texte chiffré ne contient pas un résultat valide. Si l’application accepte une clé publique RSA invalide fournie par un attaquant sans contrôle préalable, des données obsolètes ou non initialisées du tampon appelant peuvent être renvoyées à la place du chiffré KEM attendu.

Elle permet une atteinte à la confidentialité des données.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Oui

Risques

Atteinte à la confidentialité des données

Exploitation

La vulnérabilité exploitée est du type
CWE-754 : Improper Check for Unusual or Exceptional Conditions

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Faible
•   Privilèges nécessaires pour réaliser l'attaque : Aucun
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : Non

Preuve de concept
Actuellement, aucune preuve de concept n'est disponible en sources ouvertes.

Systèmes ou composants affectés

•   OpenSSL versions 3.0.x antérieures à 3.0.20,
•   OpenSSL versions 3.3.x antérieures à 3.3.7,
•   OpenSSL versions 3.4.x antérieures à 3.4.5,
•   OpenSSL versions 3.5.x antérieures à 3.5.6,
•   OpenSSL versions 3.6.x antérieures à 3.6.2,
•   Modules FIPS OpenSSL des branches 3.0, 3.1, 3.3, 3.4, 3.5 et 3.6 affectés.

Contournement provisoire

•   Valider la clé publique avec EVP_PKEY_public_check() avant l’appel à EVP_PKEY_encapsulate().
•   Valider la clé publique avec EVP_PKEY_public_check_quick() avant l’appel à EVP_PKEY_encapsulate().

Solutions ou recommandations

•   OpenSSL versions 3.0.20 et supérieures,
•   OpenSSL versions 3.3.7 et supérieures,
•   OpenSSL versions 3.4.5 et supérieures,
•   OpenSSL versions 3.5.6 et supérieures,
•   OpenSSL versions 3.6.2 et supérieures.