🇰🇷 한글 설명
Linux 커널의 eBPF RINGBUF bpf_ringbuf_reserve() 함수에서 할당된 크기가 ringbuf 크기보다 작은지 확인하지 않는 취약점이 발견되었습니다. 이로 인해 공격자가 커널 내에서 경계 외 쓰기(out-of-bounds write)를 수행하여 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
커널 내부의 메모리 저장 공간이 실제 크기보다 더 큰 데이터를 받도록 허용하는 오류가 있습니다. 이를 이용해 해커가 시스템의 가장 깊은 권한을 탈취하고 마음대로 명령을 실행할 수 있습니다.
🇺🇸 원문 (English)
The eBPF RINGBUF bpf_ringbuf_reserve() function in the Linux kernel did not check that the allocated size was smaller than the ringbuf size, allowing an attacker to perform out-of-bounds writes within the kernel and therefore, arbitrary code execution. This issue was fixed via commit 4b81ccebaeee ("bpf, ringbuf: Deny reserve of buffers larger than ringbuf") (v5.13-rc4) and backported to the stable kernels in v5.12.4, v5.11.21, and v5.10.37. It was introduced via 457f44363a88 ("bpf: Implement BPF ring buffer and verifier support for it") (v5.8-rc1).
📍 영향받는 시스템
Linux kernel v5.8-rc1 ~ v5.13-rc4 미만 버전 (v5.12.4, v5.11.21, v5.10.37 미만 포함)
⚔️ 공격 벡터
로컬 공격자가 eBPF 프로그램을 통해 커널 메모리 경계를 넘어서는 데이터를 기록하여 권한 상승 및 코드 실행
🛡️ 대응 방법
커널을 최신 보안 패치가 적용된 버전(v5.13-rc4 이상 또는 백포트된 안정 버전)으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 버전(v5.13-rc4 이상 또는 패치된 v5.12.4, v5.11.21, v5.10.37 이상)인지 확인