{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-63927","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-07-19T07:54:57.021Z","datePublished":"2026-07-19T14:55:27.864Z","dateUpdated":"2026-08-05T12:37:22.350Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T12:37:22.350Z"},"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."}],"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."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/usb/dwc2/hcd.c"],"versions":[{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","lessThan":"d5fc183ed614aeba6779cc992325be560f9a4451","status":"affected","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","lessThan":"63b0dafa676aad4d0c3f01a61ad8e2990907660c","status":"affected","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","lessThan":"9fe1d84f7e2cf33634e8afb7f4b7f8de182dd913","status":"affected","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","lessThan":"0584af4fe40fa5e254a05d69ce658746de641708","status":"affected","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","lessThan":"a15eeeceb94cbc04edef395e4d777ff554bdc27d","status":"affected","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","lessThan":"84ea928ed584756e59c6ac09736f12d1db95ded0","status":"affected","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","lessThan":"6d0b79d1d1118145e48a68192b6d733e39387053","status":"affected","versionType":"git"},{"version":"7359d482eb4d3967cc8be354405ae6be6eaf732c","lessThan":"9ea06a3fbf9f16e0d98c52cb3b99642be15ec281","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/usb/dwc2/hcd.c"],"versions":[{"version":"3.10","status":"affected"},{"version":"0","lessThan":"3.10","status":"unaffected","versionType":"semver"},{"version":"5.10.259","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.210","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.176","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.143","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.93","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.35","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.0.12","lessThanOrEqual":"7.0.*","status":"unaffected","versionType":"semver"},{"version":"7.1","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"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"}]}]}],"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"}],"title":"usb: dwc2: Fix use after free in debug code","x_generator":{"engine":"bippy-1.2.0"}}}}