
Preuve de concept CVE-2021-29155
Le système de suivi de plage pour l'arithmétique des pointeurs dans le domaine spéculatif était insuffisant.
Il était possible d'extraire des données du noyau via un canal auxiliaire.
Ceci est une preuve de concept, vous pouvez lire jusqu'à 0x5fff octets hors limites à partir du dernier élément de notre carte.
Ce problème a été corrigé dans la version 5.12 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/kernel/bpf/verifier.c?id=7fedb63a8307dda0ec3b8969a3b233a1dd7ea8e0 et rétroporté vers plusieurs noyaux LTS.
Cependant, si vous êtes toujours intéressé par son fonctionnement et que vous voulez voir un exploit Spectre en action, vous pouvez exécuter le programme en tant que sudo. Les atténuations Spectre ne s'activent alors pas.
Utilisation :
sudo ./bpf_exploit 0 3 0x0 0x5ff0
Où 0 3 correspondent à 2 threads différents, qui s'exécutent sur un cœur physique différent pour que l'exploit fonctionne.
Pour plus d'informations et une explication détaillée de ce problème, vous pouvez consulter ma thèse de bachelor [PAS ENCORE TERMINÉE]