
CVE-2021-29155 개념 증명
추측적 실행 영역에서 포인터 연산에 대한 범위 추적 시스템이 불충분했습니다.
사이드 채널을 통해 커널 데이터를 추출하는 것이 가능했습니다.
이것은 개념 증명으로, 맵의 마지막 요소로부터 0x5fff 바이트까지 경계를 넘어 읽을 수 있습니다.
이 문제는 5.12에서 수정되었습니다 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/kernel/bpf/verifier.c?id=7fedb63a8307dda0ec3b8969a3b233a1dd7ea8e0 그리고 여러 LTS 커널에 백포트되었습니다.
하지만 이 작동 방식에 여전히 관심이 있고 스펙터 익스플로잇이 실제로 작동하는 모습을 보고 싶다면, 프로그램을 sudo로 실행할 수 있습니다. 그러면 스펙터 완화 조치가 적용되지 않습니다.
Usage:
sudo ./bpf_exploit 0 3 0x0 0x5ff0
여기서 0과 3은 두 개의 다른 스레드에 해당하며, 익스플로잇이 작동하려면 서로 다른 물리적 코어에서 실행되어야 합니다.
이 문제에 대한 자세한 정보와 상세한 설명은 저의 학사 학위 논문을 참조하세요 [아직 완성되지 않음]