HD-2024-1409

Déni de service
Affectations
Node.js
14.21.3 LTS 16.20.2 LTS
en
Node.js
Node.js NES
Icône de cercle d'exclamation
Patch disponible
Cette vulnérabilité a été corrigée dans la version Never-Ending Support (NES) proposée par HeroDevs.

Aperçu

Avis de sécurité : Node.js v14 et de nombreuses versions de Node v16 utilisent encore une version d'openssl qui peut les exposer à un déni de service. Le traitement d'un fichier PKCS12 malicieusement formaté peut conduire OpenSSL à se planter, ce qui peut conduire à un déni de service.  

Détails

Informations sur le module

Paquets affectés : openssl

Versions concernées :

1.0.2 jusqu'à (à l'exclusion de) 1.0.2zj
1.1.1 jusqu'à (à l'exclusion de) 1.1.1x
3.0.0 jusqu'à (à l'exclusion de) 3.0.13
3.1.0 jusqu'à (à l'exclusion de) 3.1.5

Dépôt : https://github.com/openssl/openssl

Paquets publiés : openssl

Informations sur les vulnérabilités

Ce problème, considéré comme de gravité moyenne, est présent dans plusieurs branches d'openssl et peut affecter les projets qui utilisent ces versions.

OpenSSL peut utiliser un fichier au format PKCS12 pour contenir des certificats et des clés. Bien que la spécification PKCS12 permette à certains champs d'être NULL, OpenSSL ne vérifie pas correctement ce cas. Dans le cas où le champ est nul, OpenSSL tente de déréférencer un pointeur nul, ce qui provoque un plantage d'OpenSSL.

Si une application traite des fichiers PKCS12 à l'aide des API OpenSSL, elle sera vulnérable à ce problème. 

Les API d'OpenSSL qui sont vulnérables à ce problème sont les suivantes : PKCS12_parse(), PKCS12_unpack_p7data(), PKCS12_unpack_p7encdata(), PKCS12_unpack_authsafes() et PKCS12_newpass(). 

Les modules FIPS des versions 3.2, 3.1 et 3.0 ne sont pas concernés par ce problème.

Étapes de la reproduction

  • Configurer une machine avec une version de Node qui s'appuie sur OpenSSL de 1.0.2 à 3.1.5 avant l'application du correctif.
  • Créer ou modifier un fichier PKCS12 dans lequel certains champs autorisés à être NULL dans la spécification sont effectivement NULL. Commencez par une clé :
openssl pkcs12 -export -in cert.pem -inkey key.pem -out malicious.p12 -passout pass:password

  • Modifier le fichier à l'aide d'un éditeur hexagonal ou d'un logiciel capable de modifier le fichier. Insérer des valeurs nulles pour certains champs.
  • Utilisez une version vulnérable d'OpenSSL qui utilise la clé malveillante et observez qu'elle se bloque.

Il n'existe pas de solution de contournement.

Atténuation

OpenSSL est une bibliothèque populaire qui est souvent intégrée à d'autres paquets tels que Node.js. Assurez-vous que vous utilisez une version de Node qui continue à maintenir les mises à jour des dépendances afin d'éviter les failles de sécurité dans votre logiciel. Mettez à jour votre logiciel avec la dernière version de Node ou utilisez le support commercial d'un fournisseur comme HeroDevs.

Ressources complémentaires

Détails de la vulnérabilité
ID
HD-2024-1409
PROJET concerné
Node.js
Versions concernées
14.21.3 LTS 16.20.2 LTS
Date de publication
15 octobre 2024
≈ Date fixe
9 août 2023
Fixé en
Sévérité
Moyen
Catégorie
Déni de service