🇰🇷 한글 설명
Linux 커널의 usb gadget f_ncm 드라이버에서 네트워크 장치의 생명주기 관리 오류가 발견되었습니다. 장치 연결 해제 시 네트워크 장치가 부모 장치보다 오래 유지되어 dangling sysfs 링크와 Null Pointer Dereference 문제가 발생할 수 있습니다.
💡 쉬운 설명
USB 네트워크 기능을 사용할 때 장치를 뺐다 끼우면 시스템이 혼란을 느껴 오류가 발생하거나 멈출 수 있는 문제입니다. 장치가 연결되고 끊어지는 과정에서 관리 정보가 제대로 정리되지 않아 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
usb: gadget: f_ncm: Fix net_device lifecycle with device_move
The network device outlived its parent gadget device during
disconnection, resulting in dangling sysfs links and null pointer
dereference problems.
A prior attempt to solve this by removing SET_NETDEV_DEV entirely [1]
was reverted due to power management ordering concerns and a NO-CARRIER
regression.
A subsequent attempt to defer net_device allocation to bind [2] broke
1:1 mapping between function instance and network device, making it
impossible for configfs to report the resolved interface name. This
results in a regression where the DHCP server fails on pmOS.
Use device_move to reparent the net_device between the gadget device and
/sys/devices/virtual/ across bind/unbind cycles. This preserves the
network interface across USB reconnection, allowing the DHCP server to
retain their binding.
Introduce gether_attach_gadget()/gether_detach_gadget() helpers and use
__free(detach_gadget) macro to undo attachment on bind failure. The
bind_count ensures device_move executes only on the first bind.
[1] https://lore.kernel.org/lkml/
[email protected]/
[2] https://lore.kernel.org/linux-usb/
[email protected]/
📍 영향받는 시스템
Linux kernel (usb gadget f_ncm driver)
⚔️ 공격 벡터
로컬 공격자가 USB 장치 연결/해제를 반복하여 커널 패닉 또는 Null Pointer Dereference 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인