37년 된 OpenBSD 커널 버그로 로컬 루트 권한 획득
Big Fish: Exploiting a 37-Year-Old Kernel Bug in OpenBSD
OpenBSD에서 37년 전 BSD 소스까지 거슬러 올라가는 공유 메모리 첨부 카운터의 정수 오버플로우를 이용해 로컬 권한 상승 익스플로잇이 개발됐다. KARL, SMAP, SMEP가 활성화된 상태에서 정보 유출 없이 레이스 컨디션과 힙 그루밍, 예측 가능한 커널 포인터 덮어쓰기를 통해 루트 셸을 얻었다. Calif는 이 취약점을 보고하고 안전한 언링킹, PTE 주소 무작위화, 할당자 무작위화 등의 완화 기법을 제안했다.
37년 전 원래 BSD 소스에서 16비트 부호 있는 short로 정의된 공유 메모리 첨부 카운터를 반복적인 포크로 최대값 32,767을 넘겨 음수로 랩어라운드시킬 수 있었다.