🇰🇷 한글 설명
리눅스 커널의 ring-buffer 구현에서 새로운 subbuf order를 저장하기 전에 resize_disabled 상태를 먼저 확인하지 않아 발생하는 취약점입니다. 이로 인해 특정 레이스 컨디션 상황에서 사용자가 매핑한 버퍼의 크기가 잘못 조정되어 VMA에 페이지가 잘못 삽입될 수 있습니다.
💡 쉬운 설명
시스템의 메모리 관리 방식에 오류가 있어, 특정 상황에서 메모리 경계를 넘어서는 데이터가 잘못 기록될 수 있는 문제입니다. 이는 시스템의 안정성을 해치거나 보안 문제를 일으킬 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Check resize_disabled before publishing the new subbuf order
ring_buffer_subbuf_order_set() stores the new order and only then walks
the CPUs, returning -EBUSY if any of them has resizing disabled. A user
mapped buffer has resizing disabled, and __rb_map_vma() reads
buffer->subbuf_order without buffer->mutex, so an mmap of an already
mapped CPU racing the failing order change sizes the mapping with the
new order and inserts pages past the sub-buffer into the VMA.
Check the CPUs before storing the new order.
📍 영향받는 시스템
Linux kernel (ring-buffer 관련 모듈 사용 시스템)
⚔️ 공격 벡터
메모리 매핑(mmap) 과정에서 발생하는 레이스 컨디션을 이용한 공격
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.