CVE-2026-33532
yaml est vulnérable à un débordement de pile via des collections YAML profondément imbriquées
- Publié
- 26 mars 2026
- Mise à jour
- 30 mars 2026
- Attribution de CNA
- GitHub_M
- Preuve observée
- 25 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:LFaible · 30 prochains jours
- Percentile
- 39,7 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
`yaml` est un analyseur et sérialiseur YAML pour JavaScript. L'analyse d'un document YAML avec une version de `yaml` sur la branche 1.x antérieure à 1.10.3 ou sur la branche 2.x antérieure à 2.8.3 peut lever une `RangeError` en raison d'un débordement de pile. La phase de résolution/composition des nœuds utilise des appels de fonction récursifs sans limite de profondeur. Un attaquant capable de fournir du YAML à analyser peut déclencher une `RangeError: Maximum call stack size exceeded` avec une petite charge utile (~2–10 Ko). La `RangeError` n'est pas une `YAMLParseError`, donc les applications qui ne capturent que les erreurs spécifiques à YAML rencontreront un type d'exception inattendu. Selon la gestion des exceptions de l'application hôte, cela peut faire échouer des requêtes ou terminer le processus Node.js. Les séquences de flux permettent un imbrication profonde avec un minimum d'octets (2 octets par niveau : un `[` et un `]`). Sur la pile Node.js par défaut, environ 1 000 à 5 000 niveaux d'imbrication (entrée de 2 à 10 Ko) épuisent la pile d'appels. Le seuil exact dépend de l'environnement (version de Node.js, taille de la pile, profondeur de la pile d'appels au moment de l'invocation). Remarque : le `Parser` de la bibliothèque (phase CST) utilise une approche itérative basée sur une pile et n'est pas affecté. Seule la phase de composition/résolution utilise une récursivité réelle de la pile d'appels. Les trois API d'analyse publiques sont affectées : `YAML.parse()`, `YAML.parseDocument()` et `YAML.parseAllDocuments()`. Les versions 1.10.3 et 2.8.3 contiennent un correctif.
Sources
1# Dépôt dédié à CVE-2026-33532, fournissant une analyse et une preuve de concept potentielle pour une vulnérabilité web.
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.