🇰🇷 한글 설명
Linux 커널의 tps6594 레귤레이터 드라이버에서 멀티페이즈 루프 동작 중 디바이스 노드 참조 누수가 발생합니다. 또한, 노드를 찾는 과정에서 NULL 체크가 누락되어 NULL 포인터 역참조로 인한 시스템 충돌이 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품을 관리하는 소프트웨어에서 메모리 자원을 제대로 반환하지 않아 시스템 성능이 저하되거나, 잘못된 주소를 참조하여 시스템이 갑자기 멈출 수 있는 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
regulator: tps6594: Fix device node reference leaks in multiphase loop
In tps6594_regulator_probe(), the multi-phase configuration loop calls
of_find_node_by_name() to find buck nodes by name, and of_get_parent()
twice to navigate to the PMIC parent node. None of the acquired node
references (np, intermediate parent, np_pmic_parent) are ever released
via of_node_put(), causing a reference leak on every loop iteration.
Additionally, of_find_node_by_name() can return NULL, but the result was
immediately passed to of_node_full_name() and of_get_parent() without a
NULL check, which could lead to a NULL pointer dereference.
Fix this by:
- Adding a NULL check for np after of_find_node_by_name()
- Storing the intermediate parent node in a local variable np_parent
- Calling of_node_put() on np, np_parent and np_pmic_parent at the
end of each loop iteration
📍 영향받는 시스템
tps6594 드라이버를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 권한을 가진 공격자가 특정 하드웨어 설정을 유도하여 시스템 자원 고갈 또는 커널 패닉 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인