🇰🇷 한글 설명
리눅스 커널의 EVM(Extended Verification Module) 구성 요소에서 xattr 읽기 버퍼를 처리할 때 발생하는 취약점입니다. 설정된 xattr가 없을 경우 버퍼가 초기화되지 않은 상태로 strlen() 함수에 전달되어, 초기화되지 않은 메모리 영역을 넘어서 읽는 정보 유출 또는 크래시 위험이 있습니다.
💡 쉬운 설명
컴퓨터가 데이터를 읽을 때 데이터가 어디서 끝나는지 표시를 해야 하는데, 이 표시가 누락되어 엉뚱한 메모리 영역까지 읽어버리는 문제입니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 갑자기 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
evm: terminate and bound the evm_xattrs read buffer
evm_read_xattrs() allocates size + 1 bytes, fills them from the list of
enabled xattrs, and then passes strlen(temp) to
simple_read_from_buffer(). When no configured xattrs are enabled, the
fill loop stores nothing and temp[0] remains uninitialized, so strlen()
reads beyond initialized memory.
Explicitly terminate the buffer after allocation, use snprintf() for
each formatted line, and pass the accumulated length, without risk of
truncation, to simple_read_from_buffer().
📍 영향받는 시스템
Linux Kernel (EVM 모듈이 활성화된 버전)
⚔️ 공격 벡터
특정 조건(활성화된 xattr가 없는 상태)에서 EVM 관련 시스템 호출을 유도하여 메모리 경계를 넘어서는 읽기 수행
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 버퍼 초기화 및 길이 계산 로직을 수정해야 합니다.
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 배포판 보안 공지를 통해 대조합니다.