🇰🇷 한글 설명
리눅스 커널의 of_unittest_changeset() 함수에서 'parent' 변수가 가리키는 device_node 구조체가 of_node_put() 호출로 인해 해제된 후에도 접근하는 사용 후 해제(UAF) 취약점이 있습니다. 이로 인해 메모리 손상 및 잠재적인 코드 실행 위험이 발생할 수 있습니다.
💡 쉬운 설명
커널 테스트 코드에서 이미 삭제된 메모리 영역을 다시 읽으려는 오류가 있습니다. 이 오류를 수정하여 시스템의 안정성을 높이고 해킹 가능성을 차단합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
of: unittest: fix use-after-free in of_unittest_changeset()
The variable 'parent' is assigned the value of 'nchangeset' earlier in the
function, meaning both point to the same struct device_node. The call to
of_node_put(nchangeset) can decrement the reference count to zero and
free the node if there are no other holders. After that, the code still
uses 'parent' to check for the presence of a property and to read a
string property, leading to a use-after-free.
Fix this by moving the of_node_put() call after the last access to
'parent', avoiding the UAF.
📍 영향받는 시스템
Linux kernel (of_unittest_changeset 관련 코드 포함)
⚔️ 공격 벡터
로컬에서 커널 모듈 또는 테스트 코드를 통해 메모리 접근을 유도하여 권한 상승 또는 시스템 크래시 유발
🛡️ 대응 방법
공식 커널 패치 적용 및 of_node_put() 호출 위치를 마지막 접근 이후로 이동
🔧 검증 코드
출력된 커널 버전이 취약한 버전인지 공식 보안 공지 또는 패치 로그를 통해 확인