
Linux nftables 하위 시스템의 스택 버퍼 오버플로우인 CVE-2023-0179용 익스플로잇으로, modprobe_path 덮어쓰기를 통해 권한 없는 로컬 권한 상승을 루트로 가능하게 합니다.
이 저장소는 nftables 서브시스템에서 최근 발견된 취약점(CVE-2023-0179로 할당됨)에 대한 익스플로잇을 포함하고 있습니다. 이 취약점은 Linux 5.5부터 6.2-rc3까지의 모든 버전에 영향을 미치며, 익스플로잇은 6.1.6에서 테스트되었습니다.
취약점 세부 사항과 분석은 oss-security에서 확인할 수 있습니다.
해당 실행 파일을 생성하려면 make needle 명령어를 실행하기만 하면 됩니다.
libmnl 및 libnftnl이 빌드에 필요합니다:
sudo apt-get install libmnl-dev libnftnl-dev
익스플로잇은 권한이 없는 사용자 및 네트워크 네임스페이스로 진입하여 rule_add_payload 함수를 통해 nft_payload 표현식을 추가합니다. 이 표현식이 평가되면 스택 버퍼 오버플로우를 트리거하여 레지스터를 덮어씁니다.
그런 다음 다음 nft 명령으로 내용을 검색합니다:
nft list map netdev mytable myset12
출력에는 커널 데이터 구조와 관련된 여러 섞인 주소가 유출되며, 그 중에서 커널 명령어 주소와 regs 포인터를 찾을 수 있습니다.
익스플로잇은 modprobe_path 변수를 악용하여 UID 0을 가진 새 사용자 계정 needle:needle을 생성합니다.
루트 권한을 즐기세요.