wolfSSL - CVE-2026-93302

Date de publication :

Il s'agit d'une vulnérabilité dans la vérification des certificats pairs de confiance de wolfSSL.

wolfSSL est une bibliothèque TLS et DTLS écrite en C. Elle est conçue pour les systèmes embarqués et les environnements à ressources limitées. Elle propose une couche de compatibilité avec l'API OpenSSL. Elle s'intègre à des logiciels tels que nginx, haproxy, stunnel ou Apache httpd.

Elle touche les builds compilés avec la macro WOLFSSL_TRUST_PEER_CERT. Ces builds chargent des certificats avec wolfSSL_CTX_trust_peer_cert() ou wolfSSL_trust_peer_cert(). La fonction MatchTrustedPeer ignore la clé publique du certificat présenté. La correspondance ne compare que le hash du sujet, le hash de l'émetteur, l'identifiant SKID et la signature. Un clone forgé d'un certificat de confiance passe donc la vérification. L'attaquant n'a pas besoin de détenir la clé correspondante. Il doit seulement connaître les certificats chargés. Avec la macro OPENSSL_COMPATIBLE_DEFAULTS, tous les chargements de certificats de CA sont concernés. Les deux macros sont définies dans les builds autoconf de nginx, haproxy, stunnel, Apache httpd et d'autres logiciels. Un serveur (D)TLS malveillant peut être accepté par un client. L'authentification mutuelle est aussi touchée si le client connaît les CA chargées par le serveur.

Elle permet un contournement de l'authentification du pair (D)TLS.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Oui

Risques

Contournement de la politique de sécurité

Exploitation

La vulnérabilité exploitée est du type
CWE-295 : Improper Certificate Validation

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

wolfSSL versions 5.3.0 jusqu'à 5.9.2, pour les builds compilés avec WOLFSSL_TRUST_PEER_CERT et qui chargent des CA avec les API concernées

Contournement provisoire

wolfSSL versions 5.3.0 jusqu'à 5.9.2 : compiler avec l'option --disable-openssl-compatible-defaults et ne pas charger de CA avec wolfSSL_CTX_trust_peer_cert() ni wolfSSL_trust_peer_cert()

Solutions ou recommandations

•   wolfSSL versions 5.9.4 et supérieures
•   wolfSSL versions 5.3.0 jusqu'à 5.9.2 : application du commit 22bcd51 (patch de correction cité par l'éditeur)