Une vulnérabilité dans la sous-système eBPF permettant l'exécution de code au niveau du noyau Linux

Une vulnérabilité a été détectée dans le sous-système eBPF, permettant d'exécuter des gestionnaires à l'intérieur du noyau Linux dans une machine virtuelle spéciale avec JIT (CVE-2021-4204). Cela donne à un utilisateur local non privilégié la possibilité d'élever ses privilèges et d'exécuter son code au niveau du noyau Linux. Le problème apparaît à partir du noyau Linux 5.8 et reste non corrigé pour le moment (impactant également la version 5.16). L'état de la formation des mises à jour pour résoudre ce problème dans les distributions peut être suivi sur les pages suivantes : Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Un exploit fonctionnel a été déclaré et sera publié le 18 janvier (les utilisateurs et développeurs ont une semaine pour corriger la vulnérabilité).

La vulnérabilité est causée par une vérification incorrecte des programmes eBPF transmis pour exécution. Le sous-système eBPF fournit des fonctions auxiliaires, dont l'utilisation correcte est vérifiée par un vérificateur spécial. Certaines fonctions exigent que la valeur PTR_TO_MEM soit transmise comme argument, et pour prévenir d'éventuels débordements de tampon, le vérificateur doit connaître la taille de la mémoire liée à l'argument. Pour les fonctions bpf_ringbuf_submit et bpf_ringbuf_discard, les données sur la taille de la mémoire transmise n'étaient pas signalées au vérificateur, ce qui pouvait être utilisé pour écraser des zones mémoire en dehors du tampon lors de l'exécution de code eBPF spécialement conçu.

Pour mener une attaque, l'utilisateur doit avoir la capacité de charger son propre programme BPF, et de nombreuses distributions Linux récentes bloquent par défaut cette possibilité (l'accès non privilégié à eBPF est maintenant interdit par défaut même dans le noyau, à partir de la version 5.16). Par exemple, la vulnérabilité peut être exploitée dans la configuration par défaut d'Ubuntu 20.04 LTS, mais dans les environnements Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 et Fedora 33, elle ne se manifeste que si l'administrateur a configuré le paramètre kernel.unprivileged_bpf_disabled à 0. Comme contournement pour bloquer la vulnérabilité, l'exécution des programmes BPF par des utilisateurs non privilégiés peut être interdite avec la commande « sysctl -w kernel.unprivileged_bpf_disabled=1 ».

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster