🔍 CVE-2026-31723

5.5
CVSS Score
MEDIUM
2026-05-01
2026-10-30 13:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 usb gadget f_subset 모듈에서 net_device의 생명주기 관리 오류로 인해 dangling sysfs 심볼릭 링크가 발생하는 취약점입니다. 장치 언바인드 시 부모 장치는 파괴되지만 네트워크 장치가 남아 있어 잘못된 경로를 가리키게 됩니다. device_move()를 사용하여 장치 트리 간의 부모 관계를 재설정함으로써 이 문제를 해결했습니다.

💡 쉬운 설명

USB 장치를 연결하거나 해제할 때 컴퓨터 시스템 내부의 연결 정보가 제대로 정리되지 않아 찌꺼기 정보가 남는 문제입니다. 이로 인해 시스템 관리 도구가 존재하지 않는 경로를 참조하여 오류를 일으킬 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: usb: gadget: f_subset: Fix net_device lifecycle with device_move The net_device is allocated during function instance creation and registered during the bind phase with the gadget device as its sysfs parent. When the function unbinds, the parent device is destroyed, but the net_device survives, resulting in dangling sysfs symlinks: console:/ # ls -l /sys/class/net/usb0 lrwxrwxrwx ... /sys/class/net/usb0 -> /sys/devices/platform/.../gadget.0/net/usb0 console:/ # ls -l /sys/devices/platform/.../gadget.0/net/usb0 ls: .../gadget.0/net/usb0: No such file or directory Use device_move() to reparent the net_device between the gadget device tree and /sys/devices/virtual across bind and unbind cycles. During the final unbind, calling device_move(NULL) moves the net_device to the virtual device tree before the gadget device is destroyed. On rebinding, device_move() reparents the device back under the new gadget, ensuring proper sysfs topology and power management ordering. To maintain compatibility with legacy composite drivers (e.g., multi.c), the bound flag is used to indicate whether the network device is shared and pre-registered during the legacy driver's bind phase.

📍 영향받는 시스템

Linux kernel (usb gadget f_subset 모듈 사용 환경)

⚔️ 공격 벡터

로컬 시스템에서 USB 가젯 장치의 바인딩 및 언바인드 동작을 반복하여 발생

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel