🇰🇷 한글 설명
리눅스 커널의 of_parse_phandle_with_args_map 함수에서 이중 해제(double free) 취약점이 발견되었습니다. 루프 내부에서 참조를 해제할 때 변수 초기화가 제대로 이루어지지 않아 이미 해제된 메모리를 다시 해제하려고 시도할 수 있습니다.
💡 쉬운 설명
컴퓨터 메모리를 관리하는 과정에서 이미 사용이 끝난 메모리 공간을 실수로 두 번 지우려고 하는 오류입니다. 이 오류를 이용하면 시스템이 갑자기 멈추거나 해커가 시스템 권한을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
of: Fix double free in of_parse_phandle_with_args_map
In of_parse_phandle_with_args_map() the inner loop that
iterates through the map entries calls of_node_put(new)
to free the reference acquired by the previous iteration
of the inner loop. This assumes that the value of "new" is
NULL on the first iteration of the inner loop.
Make sure that this is true in all iterations of the outer
loop by setting "new" to NULL after its value is assigned to "cur".
Extend the unittest to detect the double free and add an additional
test case that actually triggers this path.
📍 영향받는 시스템
of_parse_phandle_with_args_map 함수를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
특수하게 조작된 Device Tree(OF) 데이터를 통해 커널 메모리 오류 유도
🛡️ 대응 방법
리눅스 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 수정된 패치 버전 이후인지 확인