OFFIS e.V - CVE-2026-44031
Date de publication :
Il s’agit d’une vulnérabilité de récursion non contrôlée dans la bibliothèque dcmdata de DCMTK.
DCMTK est une boîte à outils open source qui implémente le standard DICOM d’imagerie médicale. Elle comprend des bibliothèques C++ et des outils en ligne de commande. Elle sert à lire, écrire, convertir et transmettre des fichiers et des échanges DICOM.
Les fonctions DcmSequenceOfItems::read() et DcmItem::read() s’appellent mutuellement pour analyser les séquences DICOM imbriquées (éléments SQ). Aucune limite de profondeur n’existe dans cette chaîne d’appels. La profondeur de récursion dépend donc uniquement du contenu du fichier. Un jeu de données DICOM contenant des séquences profondément imbriquées épuise la pile d’appels. Le rapport initial atteint le plantage à environ 1 060 niveaux avec une pile de 8 Mo. Le jeu de données est analysé avant toute authentification. Il peut être envoyé par une requête C-STORE à storescp, dcmrecv, dcmqrscp ou à tout service DICOM construit sur DCMTK. Les outils locaux comme dcmdump plantent aussi à l’ouverture d’un tel fichier. L’attaque se fait à distance par le réseau. Sa complexité est faible. Elle ne nécessite ni authentification ni interaction utilisateur.
Elle permet de provoquer un déni de service par plantage du processus.
Informations
La faille est activement exploitée : Non
Un correctif existe : Oui
Une mesure de contournement existe : Non
Déni de service (à distance)
Exploitation
CWE-674 : Uncontrolled Recursion
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
Une preuve de concept est disponible en sources ouvertes.
Systèmes ou composants affectés
• DCMTK versions 3.7.0 et antérieures, ainsi que la branche de développement master antérieure au commit 885ff0f
• DCMTK 3.6.x (dernière version 3.6.9).
Solutions ou recommandations
• DCMTK versions 3.7.1 et supérieures : version cible du ticket #1191, publication non confirmée à ce jour