{"id":"CVE-2026-63927","state":"PUBLISHED","title":"usb: dwc2: Fix use after free in debug code","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nusb: dwc2: Fix use after free in debug code\n\nWe're not allowed to dereference \"urb\" after calling\nusb_hcd_giveback_urb() so save the urb->status ahead of time.","publishedAt":"2026-07-19T14:55:27.864Z","updatedAt":"2026-10-19T20:17:57.379Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"d5fc183ed614aeba6779cc992325be560f9a4451","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"63b0dafa676aad4d0c3f01a61ad8e2990907660c","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"9fe1d84f7e2cf33634e8afb7f4b7f8de182dd913","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"0584af4fe40fa5e254a05d69ce658746de641708","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"a15eeeceb94cbc04edef395e4d777ff554bdc27d","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"84ea928ed584756e59c6ac09736f12d1db95ded0","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"6d0b79d1d1118145e48a68192b6d733e39387053","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"9ea06a3fbf9f16e0d98c52cb3b99642be15ec281","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/usb/dwc2/hcd.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.10","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.10","versionType":"semver"},{"version":"5.10.259","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.210","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.35","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.12","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/usb/dwc2/hcd.c"]}],"references":["https://git.kernel.org/stable/c/d5fc183ed614aeba6779cc992325be560f9a4451","https://git.kernel.org/stable/c/63b0dafa676aad4d0c3f01a61ad8e2990907660c","https://git.kernel.org/stable/c/9fe1d84f7e2cf33634e8afb7f4b7f8de182dd913","https://git.kernel.org/stable/c/0584af4fe40fa5e254a05d69ce658746de641708","https://git.kernel.org/stable/c/a15eeeceb94cbc04edef395e4d777ff554bdc27d","https://git.kernel.org/stable/c/84ea928ed584756e59c6ac09736f12d1db95ded0","https://git.kernel.org/stable/c/6d0b79d1d1118145e48a68192b6d733e39387053","https://git.kernel.org/stable/c/9ea06a3fbf9f16e0d98c52cb3b99642be15ec281"],"weaknesses":["CWE-416"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/63xxx/CVE-2026-63927.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-63927","state":"PUBLISHED","datePublished":"2026-07-19T14:55:27.864Z","dateUpdated":"2026-10-19T20:17:57.379Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T07:54:57.021Z"},"containers":{"cna":{"title":"usb: dwc2: Fix use after free in debug code","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nusb: dwc2: Fix use after free in debug code\n\nWe're not allowed to dereference \"urb\" after calling\nusb_hcd_giveback_urb() so save the urb->status ahead of time."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"d5fc183ed614aeba6779cc992325be560f9a4451","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"63b0dafa676aad4d0c3f01a61ad8e2990907660c","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"9fe1d84f7e2cf33634e8afb7f4b7f8de182dd913","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"0584af4fe40fa5e254a05d69ce658746de641708","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"a15eeeceb94cbc04edef395e4d777ff554bdc27d","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"84ea928ed584756e59c6ac09736f12d1db95ded0","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"6d0b79d1d1118145e48a68192b6d733e39387053","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","status":"affected","lessThan":"9ea06a3fbf9f16e0d98c52cb3b99642be15ec281","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/usb/dwc2/hcd.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.10","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.10","versionType":"semver"},{"version":"5.10.259","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.210","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.35","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.12","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/usb/dwc2/hcd.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/d5fc183ed614aeba6779cc992325be560f9a4451"},{"url":"https://git.kernel.org/stable/c/63b0dafa676aad4d0c3f01a61ad8e2990907660c"},{"url":"https://git.kernel.org/stable/c/9fe1d84f7e2cf33634e8afb7f4b7f8de182dd913"},{"url":"https://git.kernel.org/stable/c/0584af4fe40fa5e254a05d69ce658746de641708"},{"url":"https://git.kernel.org/stable/c/a15eeeceb94cbc04edef395e4d777ff554bdc27d"},{"url":"https://git.kernel.org/stable/c/84ea928ed584756e59c6ac09736f12d1db95ded0"},{"url":"https://git.kernel.org/stable/c/6d0b79d1d1118145e48a68192b6d733e39387053"},{"url":"https://git.kernel.org/stable/c/9ea06a3fbf9f16e0d98c52cb3b99642be15ec281"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable dwc2 HCD urb_dequeue path is reached from local usbfs ioctls (USBDEVFS_SUBMITURB/DISCARDURB) on /dev/bus/usb device nodes, as well as from kernel unlink paths during USB I/O cancellation on dwc2-equipped embedded systems, kiosks, and mobile OTG hosts.\nAC:L - Once debug is enabled, an attacker can reliably drive the path by submitting and cancelling URBs (or forcing disconnect/error unlink storms) and can control the HCD_BH giveback race by running concurrent cancellation requests.\nPR:L - Triggering urb dequeue via usbfs requires only local user access to a USB device node (typically root or plugdev-group membership), which is low privilege and commonly available on dwc2 embedded platforms; no real root in the init namespace is required.\nUI:N - Exploitation requires only the attacker to submit and cancel USB transfers (or insert/disconnect a malicious USB device); no action by a separate victim user is needed.\nS:U - The UAF corrupts kernel heap memory within the kernel's own security authority and does not by itself cross a VM, container, or IOMMU boundary.\nC:H - Use-after-free of a kmalloc-backed struct urb after giveback can be groomed via heap spraying to obtain arbitrary kernel memory read primitives, not merely a bounded leak.\nI:H - UAF on the URB object in the general kmalloc slab enables attacker-controlled reuse of freed memory, supporting control-flow hijack and arbitrary kernel write/code execution.\nA:H - The post-giveback dereference can cause kernel oops/panic during URB teardown, and successful UAF exploitation can crash or hang the system."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:37:22.350Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"5.10.259"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"5.15.210"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"6.1.176"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"6.6.143"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"6.12.93"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"6.18.35"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"7.0.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.10","versionEndExcluding":"7.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-63927","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:33:40.424795Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-416","lang":"en","type":"CWE","description":"CWE-416 Use After Free"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T20:17:57.379Z"}}]}}}