CVE-2026-31723 in Linux
Tóm tắt
Bởi VulDB • 27/05/2026
Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:
usb: gadget: f_subset: Sửa vòng đời net_device với device_move
net_device được cấp phát trong quá trình tạo instance hàm và được đăng ký trong giai đoạn bind với thiết bị gadget làm cha sysfs của nó. Khi hàm unbind, thiết bị cha bị hủy, nhưng net_device vẫn tồn tại, dẫn đến các symlink sysfs treo (dangling):
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
Sử dụng device_move() để thay đổi cha của net_device giữa cây thiết bị gadget và /sys/devices/virtual trong các chu kỳ bind và unbind. Trong lần unbind cuối cùng, việc gọi device_move(NULL) di chuyển net_device đến cây thiết bị ảo trước khi thiết bị gadget bị hủy. Khi rebind, device_move() thay đổi cha của thiết bị trở lại dưới thiết bị gadget mới, đảm bảo thứ tự quản lý sysfs topology và power management đúng đắn.
Để duy trì tương thích với các driver composite cũ (ví dụ: multi.c), cờ bound được sử dụng để cho biết thiết bị mạng có được chia sẻ và được đăng ký trước trong giai đoạn bind của driver cũ hay không.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.