메모리 누수를 이용해 사용 횟수를 증가시키는 짧은 스크립트로, 시스템에 버그가 존재하는지 확인하는 데 유용
syscall 래퍼를 우회하는 버전의 익스플로잇 (keycntl 래퍼를 구현하지 않은 시스템용)
2016년 1월의 첫 번째 긴급 패치
이 익스플로잇을 복제하는 가장 좋은 방법은 아래 목록에 있는 영향을 받는 Linux 빌드 버전을 찾는 것입니다. ISO에는 백포트된 패치가 포함될 수 있으므로 소스 코드를 다운로드하여 직접 컴파일해야 합니다.
최신 Ubuntu 버전(버그를 유지하도록 수정된 버전)에서 익스플로잇을 실행하면 이상한 결과가 나타났습니다. 이를 추적하기 위해 test.c를 작성하여 keylog 파일에 출력했습니다. 이 프로그램은 익스플로잇과 독립적으로 실행되며, nanosleep을 사용하여 샘플링 빈도를 제어합니다. keylog는 500나노초 주기로 약 0.5초 동안 실행한 결과입니다.
keylog 파일 해석: 왼쪽 숫자는 반복 횟수입니다. 기울기가 변할 때 값을 출력합니다. tState는 기울기가 마지막으로 변경된 이후의 반복 횟수를 계산합니다. 완전히 무작위이므로 연구할 가치가 없습니다.
이 테스트에서는 예측할 수 없는 출력이 있었고 정수 오버플로가 발생하지 않았으며, 이는 최신 버전(수정 여부와 관계없이)에서 익스플로잇이 실패함을 의미합니다. 대신 목록에서 버전을 컴파일하세요.
영향을 받는 버전
Red Hat Enterprise Linux 7
CentOS Linux 7
Scientific Linux 7
Debian Linux stable 8.x (jessie)
Debian Linux testing 9.x (stretch)
SUSE Linux Enterprise Desktop 12
SUSE Linux Enterprise Desktop 12 SP1
SUSE Linux Enterprise Server 12
SUSE Linux Enterprise Server 12 SP1
SUSE Linux Enterprise Workstation Extension 12
SUSE Linux Enterprise Workstation Extension 12 SP1