🇰🇷 한글 설명
Linux 커널의 drm/vc4 드라이버에서 krealloc() 함수 사용 시 메모리 누수가 발생하는 취약점이 발견되었습니다. krealloc()의 반환값이 NULL일 경우 기존 메모리 포인터를 덮어씌워 할당된 메모리에 접근할 수 없게 만드는 문제입니다.
💡 쉬운 설명
메모리를 재할당하는 과정에서 오류가 발생했을 때, 기존에 사용하던 메모리 주소를 잃어버려 컴퓨터의 메모리가 낭비되는 현상입니다. 이 문제가 반복되면 시스템의 메모리가 부족해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/vc4: fix krealloc() memory leak
Don't just overwrite the original pointer passed to krealloc()
with its return value without checking latter:
MEM = krealloc(MEM, SZ, GFP);
If krealloc() returns NULL, that erases the pointer
to the still allocated memory, hence leaks this memory.
Instead, use a temporary variable, check it's not NULL
and only then assign it to the original pointer:
TMP = krealloc(MEM, SZ, GFP);
if (!TMP) return;
MEM = TMP;
While on it, use krealloc_array().
📍 영향받는 시스템
Linux kernel (drm/vc4 driver 포함 버전)
⚔️ 공격 벡터
메모리 할당 실패를 유도하여 시스템 자원을 고갈시키는 DoS(서비스 거부) 공격 가능성
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.