🇰🇷 한글 설명
Linux 커널의 timers/itimer 구성 요소에서 발생한 취약점으로, 사용자 공간으로 데이터를 복사하기 전에 기존 itimerval 구조체를 0으로 초기화하지 않아 발생합니다. 특히 sparc64 아키텍처에서 구조체 내의 패딩(padding) 영역에 남아있는 커널 메모리 데이터가 사용자 공간으로 노출될 수 있습니다.
💡 쉬운 설명
컴퓨터가 정보를 전달할 때 빈 공간을 깨끗이 지우지 않고 그대로 보내서, 그 빈 공간에 숨겨져 있던 중요한 정보가 유출될 수 있는 문제입니다. 이로 인해 공격자가 커널 내부의 민감한 데이터를 엿볼 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
timers/itimer: Zero-init old itimerval before copy to userspace
On native sparc64, struct __kernel_old_timeval contains a four-byte hole
after tv_usec because tv_sec is 64-bit while __kernel_suseconds_t is 32-bit.
put_itimerval() fills only the named fields in a stack-allocated
__kernel_old_itimerval and copies the entire object to userspace, so
getitimer() can expose the two padding holes.
Zero-initialize the aggregate before assigning the fields so implicit
padding is deterministic before it crosses the user/kernel boundary.
📍 영향받는 시스템
sparc64 아키텍처를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
getitimer() 시스템 호출을 통해 커널 스택에 남아있는 패딩 영역의 메모리 데이터를 읽어내는 방식
🛡️ 대응 방법
커널 패치를 적용하여 itimerval 구조체를 사용자 공간으로 복사하기 전에 0으로 초기화하도록 업데이트해야 합니다.
🔧 검증 코드
출력 결과에 sparc64 아키텍처가 포함되어 있는지 확인하고, 최신 보안 패치가 적용된 커널 버전인지 검토합니다.