Une première faille critique pour Kubernetes

Aucun programme n’est exempt de défaut. Si Kubernetes a été relativement épargné jusqu’ici, une faille critique vient d’être découverte dans l’orchestrateur de conteneurs, permettant une élévation des privilèges.

Il fallait bien que ça arrive un jour. Devenu sans doute le plus populaire des orchestrateurs de conteneurs, Kubernetes n’était pas à l’abri d’une faille. Et celle que vient de découvrir Darren Shepherd, chief-architect de Ranchers Labs, est particulièrement grosse. Critique même selon son CVSS3, avec un score de base de 9,8 sur 10 en gravité.

Force est de constater que cette vulnérabilité CVE-2018-1002105 est vicieuse. Elle permet « l'escalade des privilèges et à n'importe quel utilisateur d'obtenir des privilèges d'administrateur complets sur n'importe quel noeud de calcul exécuté dans un pod Kubernetes » grâce à une requête réseau spécialement conçue et envoyée à un cluster par le biais d’un serveur de l’API Kubernetes.

 « Les utilisateurs autorisés à établir une connexion d un serveur API Kubernetes à un serveur backend peuvent ensuite envoyer des requêtes arbitraires via la même connexion directement à ce serveur, authentifiées avec les informations d'identification TLS du serveur API Kubernetes utilisées pour établir la connexion » explique Jordan Liggit, ingénieur chez Google.

Indétectable

Dans les configurations par défaut, tous les utilisateurs (authentifiés et non authentifiés) sont autorisés à effectuer des appels d'API de découverte qui autorisent cette escalade. Ce faisant, un attaquant serait en mesure de déployer du code malveillant ou de modifier des services existants.

Pire encore, si officiellement cette faille n’a pas été exploitée, « étant donné que les demandes non autorisées sont effectuées via une connexion établie, elles n'apparaissent pas dans les journaux d'audit du serveur API Kubernetes ni dans le journal du serveur ». Il est donc quasi-impossible de détecter une attaque basée sur CVE-2018-1002105.

Les versions 1.0 à 1.9, 1.10.0 à 1.10.10, 1.11.0 à 1.11.4 et v1.12.0 à 1.12.2 sont affectées. Il est ardemment conseillé de passer à une version corrigée de Kubernetes (v1.10.11, 1.11.5 et 1.12.3) considérant que les mesures d’atténuation proposées sont susceptibles de perturber le service. Les éditeurs et distributeurs sont eux aussi en train de patcher leurs services, à l’instar d’AWS et de Red Hat.