Skip to content
OpenAdvisories
Unscored Public exploit CVE-2026-31721 EUVD-2026-26534GHSA-8r63-5629-3mpc

usb: gadget: f_hid: move list and spinlock inits from bind to alloc

Published May 1, 2026 · Updated May 11, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.4 Package: linux-aws-5.8 Package: linux-aws-6.14 Package: linux-aws-6.17 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-aws-hwe Package: linux-azure Package: linux-azure-4.15 Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.4 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.14 Package: linux-azure-6.17 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.15 Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.14 Package: linux-azure-fde-6.2 Package: linux-azure-fde-6.8 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-azure-nvidia-6.14 Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-4.15 Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.4 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.14 Package: linux-gcp-6.17 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.4 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.14 Package: linux-hwe-6.17 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-5.4 Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-iot Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-lts-xenial Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.17 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.14 Package: linux-oem-6.17 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.4 Package: linux-oracle-5.8 Package: linux-oracle-6.14 Package: linux-oracle-6.17 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-5.4 Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.14 Package: linux-realtime-6.17 Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.14 Package: linux-riscv-6.17 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

usb: gadget: f_hid: move list and spinlock inits from bind to alloc

There was an issue when you did the following:
- setup and bind an hid gadget
- open /dev/hidg0
- use the resulting fd in EPOLL_CTL_ADD
- unbind the UDC
- bind the UDC
- use the fd in EPOLL_CTL_DEL

When CONFIG_DEBUG_LIST was enabled, a list_del corruption was reported
within remove_wait_queue (via ep_remove_wait_queue). After some
debugging I found out that the queues, which f_hid registers via
poll_wait were the problem. These were initialized using
init_waitqueue_head inside hidg_bind. So effectively, the bind function
re-initialized the queues while there were still items in them.

The solution is to move the initialization from hidg_bind to hidg_alloc
to extend their lifetimes to the lifetime of the function instance.

Additionally, I found many other possibly problematic init calls in the
bind function, which I moved as well.

Affected products

VendorProductAffectedFixed
Linux Linux 3.19 5.10.253

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.19.12-1 —
Debian 13 linux 6.12.85-1 —
Debian 12 linux 6.1.170-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 24.04 LTS linux-bluefield 6.8.0-1028.33 —
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1096.98 —
Ubuntu 26.04 LTS linux-nvidia 7.0.0-1006.6 —
Ubuntu 25.10 linux +8 No fix yet —
Ubuntu 24.04 LTS linux 6.8.0-136.136 USN-8567-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1061.64 USN-8595-2
Ubuntu 24.04 LTS linux-azure 6.8.0-1063.71 USN-8606-1
Ubuntu 24.04 LTS linux-azure-fde 6.8.0-1062.69 USN-8607-1
Ubuntu 24.04 LTS linux-gcp 6.8.0-1064.72 USN-8567-1
Ubuntu 24.04 LTS linux-gke 6.8.0-1059.67 USN-8567-1
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1046.50 USN-8567-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1061.62 USN-8574-3
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-136.136.2 USN-8574-2
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1059.62 USN-8596-1
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1059.62.1 USN-8596-1
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1030.31 USN-8574-3
Ubuntu 24.04 LTS linux-oracle 6.8.0-1058.61 USN-8574-2
Ubuntu 24.04 LTS linux-raspi 6.8.0-1061.65 USN-8665-1
Ubuntu 24.04 LTS linux-riscv +27 No fix yet —
Ubuntu 24.04 LTS linux-vmware 6.8.0-1008.8 —
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1033.34 USN-8574-3
Show 19 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 22.04 LTS linux 5.15.0-186.196 USN-8575-1
Ubuntu 22.04 LTS linux-aws 5.15.0-1112.119 USN-8575-2
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1061.64~22.04.1 USN-8595-3
Ubuntu 22.04 LTS linux-azure +1 5.15.0-1117.126 USN-8610-1, USN-8575-3
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1063.71~22.04.1 USN-8606-1
Ubuntu 22.04 LTS linux-azure-fde-6.8 6.8.0-1062.69~22.04.1 USN-8609-1
Ubuntu 22.04 LTS linux-gcp 5.15.0-1112.122 USN-8575-1
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1064.72~22.04.1 USN-8567-1
Ubuntu 22.04 LTS linux-gke 5.15.0-1108.114 USN-8575-1
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1095.103 USN-8575-1
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-136.136~22.04.1 USN-8619-1
Ubuntu 22.04 LTS linux-ibm 5.15.0-1106.110 USN-8575-2
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1061.62~22.04.1 USN-8574-3
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1107.113 USN-8620-4
Ubuntu 22.04 LTS linux-kvm 5.15.0-1104.109 USN-8575-1
Ubuntu 22.04 LTS linux-lowlatency 5.15.0-184.194 USN-8575-1
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-136.136.2~22.04.1 USN-8574-2
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1107.108 USN-8575-2
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1059.62~22.04.1 USN-8596-1
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1064.66 USN-8576-2
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1053.53 USN-8576-2
Ubuntu 22.04 LTS linux-oracle 5.15.0-1109.115 USN-8575-3
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1058.61~22.04.1 USN-8595-1
Ubuntu 22.04 LTS linux-raspi 5.15.0-1106.109 USN-8668-2
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-136.136~22.04.3 —
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1075.79 USN-8575-1
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2050.52 USN-8665-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1056.57 USN-8567-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.14 +1 No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1104.106 USN-8620-3
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1111.120 USN-8575-1
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1056.57~22.04.2 USN-8567-1
Ubuntu Pro FIPS 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-updates 24.04 LTS linux-aws-fips 6.8.0-1061.64+fips1 USN-8595-3
Ubuntu Pro FIPS-updates 24.04 LTS linux-azure-fips 6.8.0-1063.71+fips2 USN-8608-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-136.136+fips2 USN-8574-2
Ubuntu Pro FIPS-updates 24.04 LTS linux-gcp-fips 6.8.0-1064.72+fips1 USN-8574-1
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1112.119+fips1 USN-8575-2
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1117.126+fips1 USN-8620-2
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-186.196+fips1 USN-8575-2
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1112.122+fips1 USN-8575-1
Ubuntu Pro FIPS-updates 20.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 18.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro FIPS-updates 16.04 LTS linux-fips No fix yet —
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 20.04 LTS linux +10 No fix yet —
Ubuntu Pro 20.04 LTS linux-aws-5.15 5.15.0-1112.119~20.04.1 USN-8575-2
Ubuntu Pro 20.04 LTS linux-azure-5.15 5.15.0-1117.126~20.04.1 USN-8620-1
Ubuntu Pro 20.04 LTS linux-azure-fde-5.15 5.15.0-1117.126~20.04.2 USN-8620-1
Ubuntu Pro 20.04 LTS linux-gcp-5.15 5.15.0-1112.122~20.04.1 USN-8668-1
Ubuntu Pro 20.04 LTS linux-hwe-5.15 5.15.0-186.196~20.04.1 USN-8575-1
Ubuntu Pro 20.04 LTS linux-ibm-5.15 +1 5.15.0-1106.110~20.04.1 USN-8597-1
Ubuntu Pro 20.04 LTS linux-intel-iotg-5.15 5.15.0-1107.113~20.04.1 USN-8620-3
Ubuntu Pro 20.04 LTS linux-lowlatency-hwe-5.15 5.15.0-184.194~20.04.1 USN-8575-1
Ubuntu Pro 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1064.66~20.04.1 USN-8576-1
Ubuntu Pro 20.04 LTS linux-oracle-5.15 5.15.0-1109.115~20.04.1 USN-8620-1
Ubuntu Pro 18.04 LTS linux +12 No fix yet —
Ubuntu Pro 16.04 LTS linux +7 No fix yet —
Ubuntu Pro 14.04 LTS linux-aws +2 No fix yet —
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 kernel-64kb +8 6.12.0-160000.37.1 SUSE-SU-2026:23231-1, SUSE-SU-2026:23221-1
SLES for SAP 16.0 kernel-default-base 6.12.0-160000.37.1.160000.2.19 SUSE-SU-2026:23231-1, SUSE-SU-2026:23221-1
SLES 16.0 kernel-64kb +8 6.12.0-160000.37.1 SUSE-SU-2026:23237-1, SUSE-SU-2026:23231-1, SUSE-SU-2026:23221-1
SLES 16.0 kernel-default-base 6.12.0-160000.37.1.160000.2.19 SUSE-SU-2026:23231-1, SUSE-SU-2026:23221-1
SLE Micro 6.2 kernel-default-base 6.12.0-160000.37.1.160000.2.19 SUSE-SU-2026:23068-1
SLE Micro 6.2 kernel-rt +5 6.12.0-160000.37.1 SUSE-SU-2026:23068-1, SUSE-SU-2026:23066-1
ReleasePackageFixed inAdvisory
openSUSE Leap 16.0 kernel-default-base 6.12.0-160000.37.1.160000.2.19 openSUSE-SU-2026:21555-1
openSUSE Leap 16.0 kernel-rt +11 6.12.0-160000.37.1 openSUSE-SU-2026:21555-1

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

  • JakeStone594/f_hid-4.14-backports ★ 0 · Aug 26, 2026

    Backports of three published f_hid fixes (incl. CVE-2026-31721, CVE-2026-31606) to an EOL Linux 4.14.190 Android vendor kernel, with on-device verification records.

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 34

References