🇰🇷 한글 설명
리눅스 커널의 fwnode_init() 함수에서 fwnode->secondary 포인터가 NULL로 초기화되지 않는 취약점이 발견되었습니다. 이로 인해 스택이나 힙에 할당된 메모리의 초기화되지 않은 값이 참조되어 잘못된 메모리 접근이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터가 새로운 장치를 인식할 때 사용하는 메모리 공간이 깨끗하게 비워지지 않아, 예전에 사용하던 잘못된 정보가 남아있는 문제입니다. 이로 인해 시스템이 엉뚱한 곳을 참조하여 오류가 발생하거나 불안정해질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
device property: set fwnode->secondary to NULL in fwnode_init()
If a firmware node is allocated on the stack (for instance: temporary
software node whose life-time we control) or on the heap - but using a
non-zeroing allocation function - and initialized using fwnode_init(),
its secondary pointer will contain uninitalized memory which likely will
be neither NULL nor IS_ERR() and so may end up being dereferenced (for
example: in dev_to_swnode()). Set fwnode->secondary to NULL on
initialization.
📍 영향받는 시스템
fwnode_init()를 사용하는 초기화되지 않은 메모리 할당 방식의 리눅스 커널 버전
⚔️ 공격 벡터
초기화되지 않은 메모리 영역에 특정 값을 배치하여 커널의 잘못된 포인터 역참조를 유도
🛡️ 대응 방법
fwnode_init() 함수 내에서 fwnode->secondary를 NULL로 명시적 초기화하는 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인