🇰🇷 한글 설명
Linux 커널의 io_uring 서브시스템에서 PROVIDE_BUFFERS 작업 시 MAX_RW_COUNT 제한을 우회할 수 있는 취약점이 발견되었습니다. 이로 인해 /proc/<PID>/mem을 읽을 때 음수 값이 사용되어 힙 오버플로우가 발생할 수 있으며, 결과적으로 커널 권한의 임의 코드 실행이 가능해집니다.
💡 쉬운 설명
리눅스 운영체제의 특정 기능에서 데이터 처리 한계치를 넘어서는 오류가 발생할 수 있는 문제입니다. 해커가 이 허점을 이용하면 컴퓨터의 가장 핵심적인 부분인 커널을 장악하여 명령을 내릴 수 있습니다.
🇺🇸 원문 (English)
The io_uring subsystem in the Linux kernel allowed the MAX_RW_COUNT limit to be bypassed in the PROVIDE_BUFFERS operation, which led to negative values being usedin mem_rw when reading /proc/<PID>/mem. This could be used to create a heap overflow leading to arbitrary code execution in the kernel. It was addressed via commit d1f82808877b ("io_uring: truncate lengths larger than MAX_RW_COUNT on provide buffers") (v5.13-rc1) and backported to the stable kernels in v5.12.4, v5.11.21, and v5.10.37. It was introduced in ddf0322db79c ("io_uring: add IORING_OP_PROVIDE_BUFFERS") (v5.7-rc1).
📍 영향받는 시스템
Linux kernel v5.7-rc1 이상 v5.13-rc1 미만 버전 (v5.12.4, v5.11.21, v5.10.37 미만 버전 포함)
⚔️ 공격 벡터
io_uring의 PROVIDE_BUFFERS 기능을 악용하여 MAX_RW_COUNT 제한을 우회하고 힙 오버플로우 유도
🛡️ 대응 방법
커널을 최신 보안 패치가 적용된 버전(v5.13-rc1 이상 또는 백포트된 v5.12.4, v5.11.21, v5.10.37 이상)으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전(v5.13-rc1 이상 또는 백포트된 안정 버전)인지 확인