CVE-2026-23320 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 05.

리눅스 커널에서 다음 취약점이 해결되었습니다:

usb: gadget: f_ncm - net_device 수명 주기를 bind/unbind와 일치시킴

현재, net_device는 ncm_alloc_inst()에서 할당되고 ncm_free_inst()에서 해제됩니다. 이로 인해 네트워크 인터페이스의 수명이 USB 연결(bind/unbind)이 아닌 구성 인스턴스에 묶입니다.

이러한 결합 해제는 USB gadged가 분리되어 하위 gadget 장치가 제거될 때 문제를 일으킵니다. net_device는 그 부모보다 더 오래 생존하여, 해제된 gadget 장치에 접근할 때 널 포인터 역참조(NULL pointer dereference)와 덩달린 sysfs 링크(dangling sysfs links)를 초래합니다.

문제 1: 분리 시 NULL 포인터 역참조 가상 주소 0000000000000000에서 커널 NULL 포인터 역참조를 처리할 수 없습니다. 호출 추적(Call trace): __pi_strlen+0x14/0x150 rtnl_fill_ifinfo+0x6b4/0x708 rtmsg_ifinfo_build_skb+0xd8/0x13c rtmsg_ifinfo+0x50/0xa0 __dev_notify_flags+0x4c/0x1f0 dev_change_flags+0x54/0x70 do_setlink+0x390/0xebc rtnl_newlink+0x7d0/0xac8 rtnetlink_rcv_msg+0x27c/0x410 netlink_rcv_skb+0x134/0x150 rtnetlink_rcv+0x18/0x28 netlink_unicast+0x254/0x3f0 netlink_sendmsg+0x2e0/0x3d4

문제 2: 덩달린 sysfs 심볼릭 링크(dangling sysfs symlinks) console:/ # ls -l /sys/class/net/ncm0 lrwxrwxrwx ... /sys/class/net/ncm0 -> /sys/devices/platform/.../gadget.0/net/ncm0 console:/ # ls -l /sys/devices/platform/.../gadget.0/net/ncm0 ls: .../gadget.0/net/ncm0: 그런 파일이나 디렉토리가 없습니다

net_device 할당을 ncm_bind()로, 해제를 ncm_unbind()로 이동합니다. 이를 통해 네트워크 인터페이스가 실제로 구성에 gadged 함수가 바인딩된 경우에만 존재하도록 보장합니다.

사전 바인드 설정(예: configfs를 통한 인터페이스 이름 또는 MAC 주소 설정)을 지원하기 위해 f_ncm_opts 구조체를 사용하여 gether_opts 구조체로 사용자 제공 옵션을 캐시합니다. 이러한 캐시된 설정은 ncm_bind()에서 생성 시 net_device에 적용됩니다.

커밋 6334b8e4553c("usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error")의 use-after-free 수정 사항을 유지합니다. opts->net를 ncm_set_alt() 및 ncm_disable()에서 확인하여 연결이 설정된 경우에만 gether_disconnect()가 실행되도록 합니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 01. 13.

모더레이션

수락

항목

VDB-353008

EPSS

0.00000

출처

Might our Artificial Intelligence support you?

Check our Alexa App!