
Proof of Concept CVE-2021-29155
Das Bereichsverfolgungssystem für Zeigerarithmetik im spekulativen Bereich war unzureichend.
Es war möglich, Kernel-Daten über einen Seitenkanal zu extrahieren.
Dies ist ein Proof of Concept, mit dem Sie bis zu 0x5fff Bytes außerhalb der Grenzen ab dem letzten Element unserer Map lesen können.
Dieses Problem wurde in 5.12 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/kernel/bpf/verifier.c?id=7fedb63a8307dda0ec3b8969a3b233a1dd7ea8e0 behoben und auf mehrere LTS-Kernel zurückportiert.
Wenn Sie jedoch immer noch daran interessiert sind, wie das funktioniert, und einen Spectre-Exploit in Aktion sehen möchten, können Sie das Programm mit sudo ausführen. Dann greifen die Spectre-Mitigationen nicht.
Verwendung:
sudo ./bpf_exploit 0 3 0x0 0x5ff0
Wobei 0 und 3 zwei verschiedenen Threads entsprechen, die auf unterschiedlichen physischen Kernen laufen, damit der Exploit funktioniert.
Für weitere Informationen und eine detaillierte Erklärung dieses Problems können Sie einen Blick auf meine Bachelorarbeit werfen [NOCH NICHT FERTIG]