🇰🇷 한글 설명
Linux 커널의 ax88772 USB 네트워크 드라이버에서 phy_mask가 설정되지 않아 불필요한 32개의 phy 디바이스가 생성되고, 시스템 절전 모드 재개 시 NULL 포인터 참조 오류가 발생하여 커널 패닉을 유발합니다. DLink DUB-E100 등의 장치에서 시스템 불안정성을 초래합니다.
💡 쉬운 설명
Linux 커널의 특정 USB 네트워크 어댑터 드라이버가 실제 필요한 것보다 많은 가상 장치를 만들어서, 컴퓨터가 절전에서 깰 때 충돌합니다. 드라이버가 필요한 장치만 만들도록 수정하면 됩니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: usb: asix_devices: add phy_mask for ax88772 mdio bus
Without setting phy_mask for ax88772 mdio bus, current driver may create
at most 32 mdio phy devices with phy address range from 0x00 ~ 0x1f.
DLink DUB-E100 H/W Ver B1 is such a device. However, only one main phy
device will bind to net phy driver. This is creating issue during system
suspend/resume since phy_polling_mode() in phy_state_machine() will
directly deference member of phydev->drv for non-main phy devices. Then
NULL pointer dereference issue will occur. Due to only external phy or
internal phy is necessary, add phy_mask for ax88772 mdio bus to workarnoud
the issue.
📍 영향받는 시스템
Linux 커널 ax88772 USB 네트워크 드라이버 사용 시스템, 특히 DLink DUB-E100 H/W Ver B1 등 ASIX 기반 USB 이더넷 어댑터
⚔️ 공격 벡터
로컬 시스템 접근 권한이 있는 사용자가 시스템 suspend/resume을 트리거하여 커널 패닉 또는 DoS 유발
🛡️ 대응 방법
Linux 커널을 최신 버전으로 업데이트하거나 phy_mask 패치가 적용된 커널 버전으로 업그레이드
🔧 검증 코드
ASIX 드라이버가 로드되었는지 확인하고, ethtool로 드라이버 버전을 확인하여 최신 패치 적용 여부를 판단합니다. 커널 버전이 취약점이 수정된 버전 이상인지 확인하세요.
lsmod | grep asix && ethtool -i eth0 | grep driver || echo 'ASIX driver not loaded'