🇰🇷 한글 설명
Linux 커널의 mm/mempolicy 모듈 내 weighted_interleave_auto_store() 함수에서 메모리 누수 취약점이 발견되었습니다. 특정 조건에서 메모리 상태를 업데이트할 때 기존 할당된 메모리를 해제하지 않거나, 새로운 메모리를 할당한 후 적절히 관리하지 못해 발생합니다. 이로 인해 사용자가 반복적으로 특정 값을 쓰면 시스템 메모리가 점진적으로 고갈될 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리를 관리하는 프로그램에서 사용하지 않는 메모리를 제대로 치우지 않고 계속 쌓아두는 버그가 발견되었습니다. 공격자가 이 과정을 반복하면 컴퓨터의 메모리가 가득 차서 시스템이 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
mm/mempolicy: fix memory leaks in weighted_interleave_auto_store()
weighted_interleave_auto_store() fetches old_wi_state inside the if
(!input) block only. This causes two memory leaks:
1. When a user writes "false" and the current mode is already manual,
the function returns early without freeing the freshly allocated
new_wi_state.
2. When a user writes "true", old_wi_state stays NULL because the
fetch is skipped entirely. The old state is then overwritten by
rcu_assign_pointer() but never freed, since the cleanup path is
gated on old_wi_state being non-NULL. A user can trigger this
repeatedly by writing "1" in a loop.
Fix both leaks by moving the old_wi_state fetch before the input check,
making it unconditional. This also allows a unified early return for both
"true" and "false" when the requested mode matches the current mode.
Reviewed by: Donet Tom <
[email protected]>
📍 영향받는 시스템
Linux Kernel (mm/mempolicy 모듈이 포함된 버전)
⚔️ 공격 벡터
사용자가 특정 메모리 정책 설정 파일에 'true' 또는 'false' 값을 반복적으로 기록하여 메모리 누수를 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인