🇰🇷 한글 설명
Linux 커널의 mv643xx 이더넷 드라이버에서 PHY를 연결하기 전에 dev->netdev_ops를 할당하지 않아, CONFIG_NET_SHAPER가 활성화된 경우 프로브 과정에서 NULL 포인터 역참조로 크래시가 발생합니다. 해결책은 PHY 연결 이전에 netdev_ops를 설정하는 것입니다.
💡 쉬운 설명
이 문제는 특정 네트워크 장치 드라이버가 시작될 때 필요한 설정이 빠진 상태에서 작업을 진행해 시스템이 멈추는 버그입니다. 커널 개발자들은 같은 종류의 문제를 다른 드라이버에서 이미 수정했고, 이번에도 같은 방식으로 순서를 바로잡았습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: mv643xx: move setting of netops to fix crash
mv643xx_eth_probe() connects the PHY before dev->netdev_ops is
assigned. phy_attach_direct() -> phy_link_topo_add_phy() reads
dev->netdev_ops through netdev_need_ops_lock() since the commit in
question, so probing crashes with a NULL pointer dereference when
CONFIG_NET_SHAPER is enabled.
Assign netdev_ops before the PHY attach, as was done for emac in commit
7c9f391ec89c ("net: emac: move setting of netops to fix crash").
📍 영향받는 시스템
CONFIG_NET_SHAPER가 활성화된 mv643xx_eth 드라이버를 사용하는 Linux 커널 (수정 커밋 이전 버전)
⚔️ 공격 벡터
원격 공격이 아닌 드라이버 초기화 과정의 결함으로, 해당 하드웨어에서 부팅 또는 드라이버 프로브 시 커널 크래시(서비스 거부) 유발
🛡️ 대응 방법
커널을 해당 수정 사항이 포함된 최신 안정 버전으로 업데이트
🔧 검증 코드
커널 버전이 수정 패치가 포함된 버전인지 확인하고, CONFIG_NET_SHAPER=y 여부와 mv643xx 드라이버 사용 여부를 함께 점검하여 영향 여부를 판단
uname -r && grep -i NET_SHAPER /boot/config-$(uname -r) 2>/dev/null