🇰🇷 한글 설명
리눅스 커널의 print_cpu_stall_info() 함수에서 jiffies 차이가 매우 클 경우 버퍼 오버플로우가 발생할 수 있는 취약점입니다. 이 문제는 snprintf()를 사용하여 버퍼 크기를 제한함으로써 해결되었습니다.
💡 쉬운 설명
컴퓨터의 시간 계산 값이 너무 커질 경우, 정보를 출력하는 과정에서 준비된 메모리 공간을 넘어서는 데이터가 써지는 오류입니다. 이로 인해 시스템이 불안정해지거나 예기치 않은 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
rcu: Fix buffer overflow in print_cpu_stall_info()
The rcuc-starvation output from print_cpu_stall_info() might overflow the
buffer if there is a huge difference in jiffies difference. The situation
might seem improbable, but computers sometimes get very confused about
time, which can result in full-sized integers, and, in this case,
buffer overflow.
Also, the unsigned jiffies difference is printed using %ld, which is
normally for signed integers. This is intentional for debugging purposes,
but it is not obvious from the code.
This commit therefore changes sprintf() to snprintf() and adds a
clarifying comment about intention of %ld format.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
📍 영향받는 시스템
Linux Kernel (print_cpu_stall_info 함수를 사용하는 버전)
⚔️ 공격 벡터
매우 큰 jiffies 차이를 유발하여 시스템의 CPU stall 정보를 출력하도록 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인