🇰🇷 한글 설명
리눅스 커널의 mv88e6xxx 드라이버에서 빈 리스트를 확인하는 로직이 잘못 구현되어 발생한 취약점입니다. list_first_entry 함수는 빈 리스트에 대해 NULL을 반환하지 않으므로, 이를 적절히 처리하지 못해 시스템 오류를 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터의 네트워크 부품을 관리하는 프로그램이 비어 있는 목록을 확인하는 과정에서 실수로 잘못된 값을 읽으려 시도하는 문제입니다. 이로 인해 시스템이 예상치 못한 동작을 하거나 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: dsa: mv88e6xxx: Correct check for empty list
Since commit a3c53be55c95 ("net: dsa: mv88e6xxx: Support multiple MDIO
busses") mv88e6xxx_default_mdio_bus() has checked that the
return value of list_first_entry() is non-NULL.
This appears to be intended to guard against the list chip->mdios being
empty. However, it is not the correct check as the implementation of
list_first_entry is not designed to return NULL for empty lists.
Instead, use list_first_entry_or_null() which does return NULL if the
list is empty.
Flagged by Smatch.
Compile tested only.
📍 영향받는 시스템
mv88e6xxx 드라이버를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특정 네트워크 구성 환경을 조작하여 커널 오류를 유발할 수 있음
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 해결된 패치 버전 이후인지 확인