Il a été fait connaître publication de nouvelles versions correctives d’OpenSSL (3.0.8 , 1.1.1t ) où correction d’une vulnérabilité dangereuse (CVE-2023-0286) qui permet d’obtenir le contenu de zones arbitraires de la mémoire du processus lors du traitement d’un processus contrôlé par la liste de révocation de certificats (CRL) ou le jeton horodaté d’un attaquant.
vulnérabilité est causé par la confusion de type lors du traitement d’une adresse X.400 dans l’extension X.509 GeneralName.
En particulier, une adresse X.400 a été analysée avec le type ASN1_STRING, tandis que le champ x400Address dans la structure GENERAL_NAME a été analysé avec le type ASN1_TYPE, ce qui a entraîné la comparaison (GENERAL_NAME_cmp) avec ASN1_TYPE au lieu de ASN1_STRING. Lorsque la vérification de la liste de révocation des certificats est activée (en définissant l’indicateur X509_V_FLAG_CRL_CHECK dans l’application), la vulnérabilité permet à un attaquant de transmettre des pointeurs arbitraires à la fonction memcmp, qui peut être utilisée pour lire le contenu de la mémoire ou démarrer un arrêt anormal du processus .
Dans la plupart des situations, un attaquant doit avoir le contrôle sur la liste de révocation des certificats (CRL) utilisée et la chaîne de confiance du certificat pour mener à bien une attaque.
Une attaque peut également être faite en cas de contrôle sur l’un des éléments spécifiés, mais dans ce cas, l’adresse X.400 doit apparaître comme point de distribution CRL, ce qui est assez rare. En ce sens, il est supposé que la vulnérabilité affecte principalement les applications qui utilisent leur propre implémentation de la fonctionnalité de téléchargement CRL sur le réseau.
En plus du problème évoqué, OpenSSL 3.0.8 corrige également plusieurs vulnérabilités moins dangereux:
- CVE-2022-4304 : est une attaque par canal auxiliaire qui permet de déterminer les données source en mesurant les retards du réseau lors de l’exécution d’opérations RSA à l’aide des modes de propagation incrémentielle PKCS#1 v1.5, RSA-OEAP et RSASVE. L’attaque est une variante de la méthode Bleichenbacher, dont l’essence est que l’attaquant, sur la base d’une réaction différente du serveur, peut séparer les blocs Oracle de rembourrage corrects et incorrects utilisés pour aligner les données chiffrées le long de la limite du bloc. Une attaque réussie nécessite l’envoi d’un grand nombre de messages de sonde pour le déchiffrement.
Côté pratique, une attaque peut par exemple être utilisée pour déterminer le secret maître d’une connexion TLS, que le client transmet au serveur sous forme chiffrée. Un attaquant ayant la capacité d’intercepter la connexion entre le client et le serveur peut récupérer la valeur du secret maître en envoyant un grand nombre de messages de test au serveur et en analysant leur temps de traitement. Une fois le secret principal déterminé, l’attaquant peut déchiffrer les données envoyées via la connexion TLS en question. - CVE-2022-4203 : Lire le tampon hors limites lors de la vérification des certificats X.509 avec un champ de nom personnalisé. L’attaque peut planter l’application ou faire fuir le contenu de la mémoire d’un processus côté client s’il se connecte à un serveur contrôlé par l’attaquant, ou côté serveur si le serveur demande une authentification à un client contrôlé par l’attaquant.
- CVE-2023-0216 : Référence de pointeur incorrecte manquante dans les fonctions d2i_PKCS7(), d2i_PKCS7_bio() et d2i_PKCS7_fp() lors de la gestion de données PKCS7 spécialement formatées. La vulnérabilité pourrait entraîner le blocage du processus.
- CVE-2023-0217 : Déréférence du pointeur NULL lors de la vérification de la clé publique DSA dans la fonction EVP_PKEY_public_check().
- CVE-2023-0215 : accès use-after-free à une zone mémoire dans la fonction BIO_new_NDEF utilisée pour transmettre des données ASN.1 via l’interface BIO.
- CVE-2022-4450 : double libération de mémoire après l’appel de la fonction PEM_read_bio_ex.
- CVE-2023-0401 : Déréférence du pointeur NULL lors de la validation des données PKCS7.
Sur les 4 dernières vulnérabilités, on suppose qu’elles se limitent à la capacité d’initier une interruption anormale de processus.
Enfin, si vous souhaitez en savoir plus sur cette nouvelle version, vous pouvez consulter les détails dans le lien suivant.