Docker a récemment publié des mises à jour de sécurité pour corriger une vulnérabilité critique affectant certaines versions de Docker Engine, qui pourrait permettre à un attaquant de contourner les plugins d’autorisation (AuthZ) dans des circonstances spécifiques.
Ce problème a été découvert et corrigé pour la première fois dans Docker Engine v18.09.1, lancé en janvier 2019. Cependant, pour une raison inconnue, cette correction n’a pas été intégrée dans les versions ultérieures, entraînant la réapparition de la faille.
Cette régression préoccupante a été identifiée en avril 2024, et des correctifs ont finalement été publiés pour toutes les versions prises en charge de Docker Engine.
Bien que cela ait laissé aux attaquants une période de cinq ans pour exploiter cette vulnérabilité, il n’est pas clair si elle a été utilisée dans la nature pour obtenir un accès non autorisé aux instances Docker.
Une vulnérabilité vieille de cinq ans
La faille, désormais référencée sous le code CVE-2024-41110, est considérée comme critique (score CVSS : 10.0). Elle permet à un attaquant d’envoyer une requête API spécialement conçue avec une longueur de contenu de 0, trompant ainsi le démon Docker pour qu’il la transmette au plugin AuthZ.
Dans des scénarios normaux, les requêtes API contiennent un corps avec les données nécessaires, et le plugin d’autorisation examine ce corps pour prendre des décisions de contrôle d’accès.
Lorsque la longueur de contenu est fixée à 0, la requête est transmise au plugin AuthZ sans corps, ce qui empêche le plugin d’effectuer une validation adéquate. Cela expose le système au risque d’approuver des requêtes pour des actions non autorisées, y compris l’escalade de privilèges.
CVE-2024-41110 touche les versions de Docker Engine jusqu’à v19.03.15, v20.10.27, v23.0.14, v24.0.9, v25.0.5, v26.0.2, v26.1.4, v27.0.3 et v27.1.0, pour les utilisateurs qui utilisent des plugins d’autorisation pour le contrôle d’accès.
Les utilisateurs qui ne s’appuient pas sur des plugins pour l’autorisation, ainsi que ceux utilisant Mirantis Container Runtime ou des produits commerciaux Docker, ne sont pas affectés par CVE-2024-41110, quelle que soit la version qu’ils utilisent.
Les utilisateurs concernés par les versions vulnérables sont fortement encouragés à passer dès que possible aux versions v23.0.14 et v27.1.0.
Il est également à noter que la dernière version de Docker Desktop, 4.32.0, inclut un Docker Engine vulnérable, mais l’impact est limité car l’exploitation nécessite un accès à l’API Docker, et toute action d’escalade de privilèges serait restreinte à la machine virtuelle.
La prochaine version de Docker Desktop, v4.33.0, devrait résoudre ce problème, mais elle n’a pas encore été publiée.
Les utilisateurs qui ne peuvent pas passer à une version sécurisée sont conseillés de désactiver les plugins AuthZ et de restreindre l’accès à l’API Docker uniquement aux utilisateurs de confiance.