🇰🇷 한글 설명
리눅스 커널의 KEYS: encrypted 서브시스템에서 datablob_len 계산 시 정수 오버플로가 발생할 수 있는 취약점입니다. 이로 인해 할당된 버퍼보다 큰 데이터가 복사되어 메모리 영역을 벗어나는(slab-out-of-bounds) 쓰기 작업이 발생할 수 있습니다.
💡 쉬운 설명
데이터 크기를 계산하는 과정에서 숫자가 너무 커져 실제 필요한 크기보다 작은 공간이 만들어지는 오류입니다. 이로 인해 넘쳐흐른 데이터가 컴퓨터의 다른 중요한 메모리 영역을 침범할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
KEYS: encrypted: fix integer overflow of datablob_len
encrypted_key_alloc() stores datablob_len in a u16. It is computed from
multiple string and payload lengths. If the result exceeds U16_MAX, the
assignment truncates the allocation size. KASAN reports a 32760-byte
slab-out-of-bounds write when __ekey_init() copies the master key
description into the undersized buffer.
The total payload length stored in key->datalen is also a u16. Use
check_add_overflow() to reject values that do not fit either destination,
and use kzalloc_flex() for the flexible-array allocation.
📍 영향받는 시스템
Linux kernel (KEYS: encrypted 서브시스템을 사용하는 버전)
⚔️ 공격 벡터
조작된 길이의 키 설명(description) 또는 페이로드를 포함한 암호화 키 생성 요청을 통한 메모리 오버플로 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트하고, check_add_overflow() 및 kzalloc_flex()가 적용된 패치를 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.
💻 영향받는 소프트웨어
NVIDIA Cloud Gaming Guest Driver for Linux