
Prova di concetto CVE-2021-29155
Il sistema di tracciamento dell'intervallo per l'aritmetica dei puntatori nel dominio speculativo era insufficiente.
Era possibile estrarre dati del kernel tramite un canale laterale.
Questo è un proof of concept, puoi leggere fino a 0x5fff byte fuori dai limiti a partire dall'ultimo elemento della nostra mappa.
Questo problema è stato corretto nella versione 5.12 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/kernel/bpf/verifier.c?id=7fedb63a8307dda0ec3b8969a3b233a1dd7ea8e0 e backportato a diversi kernel LTS.
Tuttavia, se sei ancora interessato a come funziona e vuoi vedere un exploit Spectre in azione, puoi eseguire il programma come sudo. In questo modo le mitigazioni Spectre non si attivano.
Uso:
sudo ./bpf_exploit 0 3 0x0 0x5ff0
Dove 0 e 3 corrispondono a 2 thread diversi, che vengono eseguiti su core fisici differenti affinché l'exploit funzioni.
Per maggiori informazioni e una spiegazione dettagliata di questo problema, puoi dare un'occhiata alla mia tesi di laurea [NON ANCORA COMPLETATA].