{"id":"CVE-2026-31606","title":"usb: gadget: f_hid: don't call cdev_init while cdev in use","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nusb: gadget: f_hid: don't call cdev_init while cdev in use\n\nWhen calling unbind, then bind again, cdev_init reinitialized the cdev,\neven though there may still be refer…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= cb382536052fcc7713988869b54a81137069e5a9 < 3aa77f5da0ecb00895411f4246d8a3e4db0343c2","Linux >= cb382536052fcc7713988869b54a81137069e5a9 < c6c0d13db5d0f8d465eabc14bd23d2b6a7247a43","Linux >= cb382536052fcc7713988869b54a81137069e5a9 < eb6ef6185f2054a341ec70d7e2165f5381744215","Linux >= cb382536052fcc7713988869b54a81137069e5a9 < 5a229016ca3ac551294ec59770be9da94ec4bf63","Linux >= cb382536052fcc7713988869b54a81137069e5a9 < 75ecc46828ec377dd5692c677168ef6d64fd7123","Linux >= cb382536052fcc7713988869b54a81137069e5a9 < 81ebd43cc0d6d106ce7b6ccbf7b5e40ca7f5503d","Linux 3.19"],"published":"2026-04-24","updated":"2026-10-21","sourceUpdated":"2026-10-21T12:39:35.359Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-31606","references":[{"url":"https://git.kernel.org/stable/c/3aa77f5da0ecb00895411f4246d8a3e4db0343c2"},{"url":"https://git.kernel.org/stable/c/c6c0d13db5d0f8d465eabc14bd23d2b6a7247a43"},{"url":"https://git.kernel.org/stable/c/eb6ef6185f2054a341ec70d7e2165f5381744215"},{"url":"https://git.kernel.org/stable/c/5a229016ca3ac551294ec59770be9da94ec4bf63"},{"url":"https://git.kernel.org/stable/c/75ecc46828ec377dd5692c677168ef6d64fd7123"},{"url":"https://git.kernel.org/stable/c/81ebd43cc0d6d106ce7b6ccbf7b5e40ca7f5503d"}],"tags":["cve.org"],"epss":0.00162,"epssPercentile":0.05037,"ingestedAt":"2026-10-21T12:48:53.661Z","slug":"CVE-2026-31606","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nusb: gadget: f_hid: don't call cdev_init while cdev in use\n\nWhen calling unbind, then bind again, cdev_init reinitialized the cdev,\neven though there may still be references to it. That's the case when\nthe /dev/hidg* device is still opened. This obviously unsafe behavior\nlike oopes.\n\nThis fixes this by using cdev_alloc to put the cdev on the heap. That\nway, we can simply allocate a new one in hidg_bind.\n\n## Affected\n\n- `Linux >= cb382536052fcc7713988869b54a81137069e5a9 < 3aa77f5da0ecb00895411f4246d8a3e4db0343c2`\n- `Linux >= cb382536052fcc7713988869b54a81137069e5a9 < c6c0d13db5d0f8d465eabc14bd23d2b6a7247a43`\n- `Linux >= cb382536052fcc7713988869b54a81137069e5a9 < eb6ef6185f2054a341ec70d7e2165f5381744215`\n- `Linux >= cb382536052fcc7713988869b54a81137069e5a9 < 5a229016ca3ac551294ec59770be9da94ec4bf63`\n- `Linux >= cb382536052fcc7713988869b54a81137069e5a9 < 75ecc46828ec377dd5692c677168ef6d64fd7123`\n- `Linux >= cb382536052fcc7713988869b54a81137069e5a9 < 81ebd43cc0d6d106ce7b6ccbf7b5e40ca7f5503d`\n- `Linux 3.19`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}