🇰🇷 한글 설명
리눅스 커널의 링 버퍼(ring-buffer)에서 버퍼 크기 조정 시 캐시된 페이지를 해제하는 과정 중 발생하는 취약점입니다. 버퍼 크기가 변경되었음에도 이전 크기의 정보를 사용하여 페이지를 해제할 경우 커널 충돌이나 메모리 누수가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 메모리를 정리할 때, 예전 크기 정보를 잘못 사용하여 시스템이 멈추거나 메모리가 낭비되는 문제입니다. 이를 방지하기 위해 메모리 주소와 함께 정확한 크기 정보를 항상 함께 저장하도록 수정되었습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ring-buffer: Make cpu_buffer::free_page a buffer_data_read_page
Discarding a cached reader page after a concurrent ring buffer resize
uses the new global subbuf_order for the free_pages() call. This
mismatched order may crashes the kernel or leaks memory because the cached
page was allocated under the old size.
Save the actual free_page order alongside the page address to ensure we
always refer to the correct value and do not rely on the potentially
stalled cpu_buffer->subbuf_order value. The simplest is to make
free_page a buffer_data_read_page which already covers exactly what we
need: a page address and a page order.
📍 영향받는 시스템
Linux Kernel (ring-buffer 관련 모듈 사용 버전)
⚔️ 공격 벡터
동시성 제어 미흡을 이용한 메모리 관리 오류 유도 (Local/Kernel level)
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인하십시오.