🇰🇷 한글 설명
Linux 커널의 cpsw_new 네트워크 드라이버에서 register_netdev() 실패 시 등록되지 않은 네트워크 디바이스를 등록 해제하려고 시도할 수 있는 취약점입니다. 이는 커널 메모리 손상과 시스템 불안정성을 초래합니다.
💡 쉬운 설명
네트워크 드라이버가 초기화되는 과정에서 실패하면 잘못된 메모리 영역을 삭제하려고 시도할 수 있습니다. 이로 인해 시스템이 크래시되거나 불안정하게 동작할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: cpsw_new: Fix potential unregister of netdev that has not been registered yet
If an error occurs during register_netdev() for the first MAC in
cpsw_register_ports(), even though cpsw->slaves[0].ndev is set to NULL,
cpsw->slaves[1].ndev would remain unchanged. This could later cause
cpsw_unregister_ports() to attempt unregistering the second MAC.
To address this, add a check for ndev->reg_state before calling
unregister_netdev(). With this change, setting cpsw->slaves[i].ndev
to NULL becomes unnecessary and can be removed accordingly.
📍 영향받는 시스템
Linux kernel cpsw_new 드라이버 (TI CPSW 기반 ARM 임베디드 시스템, BeagleBone 등)
⚔️ 공격 벡터
비정상적인 하드웨어 상태나 메모리 압박 조건에서 드라이버 초기화 오류를 유발하여 로컬 권한 상승 달성
🛡️ 대응 방법
Linux 커널을 최신 버전으로 업데이트하여 cpsw_new 드라이버 패치 적용
🔧 검증 코드
커널 버전과 cpsw 모듈 버전을 확인하여 보안 패치가 포함되었는지 검증합니다.
cat /proc/version | grep -oP 'version \K[^ ]+' && modinfo cpsw 2>/dev/null | grep version