La nouvelle vulnérabilité CVE-2022-0185 dans le noyau Linux permet de prendre le contrôle du nœud tant que le conteneur a activé le privilège CAP_SYS_ADMIN.

Les mainteneurs du noyau Linux ont découvert une nouvelle vulnérabilité dans le noyau, identifiée comme CVE-2022-0185, qui pourrait être exploitée dans des environnements tels que Kubernetes pour échapper aux conteneurs et prendre le contrôle du nœud. L’exploitation de la faille nécessite que le conteneur ait la permission CAP_SYS_ADMIN activée, ce qui permet des actions telles que le montage de disques ou la définition de quotas sur le conteneur.

La vulnérabilité consiste en un sous-débit d’entier dans le composant de contexte du système de fichiers, par lequel la valeur peut être réduite en dessous de zéro et au lieu de prendre une valeur négative, atteindre la valeur maximale de l’entier. Ce bug peut être exploité pour écrire en dehors de la mémoire allouée et ainsi modifier d’autres valeurs dans l’espace.

En principe, d’autres technologies telles que Docker ne sont pas vulnérables à ce bug car seccomp est activé en standard. Cette fonctionnalité du noyau est utilisée pour restreindre les actions autorisées dans le conteneur, empêchant ainsi l’exploitation de la vulnérabilité. Cette restriction peut être testée en essayant d’exécuter ‘unshare’ sur l’instance, et vous verrez apparaître une erreur indiquant que l’opération n’est pas autorisée. En théorie, les opérateurs Kubernetes pourraient également activer seccomp par défaut, bien que cette fonctionnalité soit encore en phase de test.

La vulnérabilité a déjà été corrigée dans la version 5.16.2 de Linux, et est maintenant disponible dans la plupart des distributions telles que Redhat, Debian ou Ubuntu. La faille n’est présente qu’à partir de la version 5.1 du noyau, les versions antérieures n’ont donc pas besoin de corriger le problème. Une autre possibilité est de désactiver les espaces de noms des utilisateurs non privilégiés, pour lesquels vous pouvez utiliser : ‘sysctl -w kernel.unprivileged_userns_clone = 0’.

Pour l’instant, rien ne prouve qu’il ait été exploité par des attaquants, bien que des Proof of Concept (PoC) soient déjà disponibles et que d’autres utilisateurs les testent déjà. Le même utilisateur de Twitter a publié un repository où il promet de mettre en ligne ses résultats prochainement.

Il est recommander de mettre à jour dès que possible si vous avez des conteneurs qui utilisent la permission ‘CAP_SYS_ADMIN’. De plus, il convient généralement de ne pas accorder de permissions supplémentaires aux conteneurs, sauf si leur utilisation est vraiment nécessaire.

Plus d’information:
https://access.redhat.com/security/cve/CVE-2022-0185%0A
https://www.armosec.io/blog/cve-2022-0185-kubernetes-users/%0A
https://blog.aquasec.com/cve-2022-0185-linux-kernel-container-escape-in-kubernetes