# CVE-2026-80970: linux: In the Linux kernel, the following vulnerability has been resolved:  ALSA: FCP: do not copy out an uninitialised init...

CVE-2026-80970 is fixed in linux on 1 platform by DEBIAN-CVE-2026-80970 (version 7.2.6-1), released September 23, 2026. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2026-80970
- Priority: Routine
- CVSS: n/a
- EPSS: 0.0021
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Sep 11, 2026

## Description

In the Linux kernel, the following vulnerability has been resolved:  ALSA: FCP: do not copy out an uninitialised init response  fcp_ioctl_init() allocates its response buffer with kmalloc() and copies the whole buffer back to userspace:  	buf_size = init.step0_resp_size + init.step2_resp_size;  	void *resp __free(kfree) = 		kmalloc(buf_size, GFP_KERNEL); 	... 	if (copy_to_user(arg->resp, resp, buf_size)) 		return -EFAULT;  Nothing clears the buffer, and the only writer of its leading step0_resp_size bytes is the step-0 control transfer:  	err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), 		FCP_USB_REQ_STEP0, 		USB_RECIP_INTERFACE | USB_TYPE_CLASS | USB_DIR_IN, 		0, private->bInterfaceNumber, 		step0_resp, private->step0_resp_size); 	if (err < 0) 		return err;  usb_fill_control_urb() does not set URB_SHORT_NOT_OK, so a short or zero-length data stage completes with status 0 and snd_usb_ctl_msg() returns a small actual_length.  The only check is err < 0, so a short transfer is accepted as success.  snd_usb_ctl_msg() copies the full size back unconditionally:  	buf = kmemdup(data, size, GFP_KERNEL); 	... 	memcpy(data, buf, size);  Bytes the device never wrote are therefore restored into resp unchanged and copied to userspace.  step0_resp_size and step2_resp_size are each validated only to 1..255, so the caller also picks the slab cache, from kmalloc-8 up to kmalloc-512.  On 7.2.0-rc5 (arm64), device answering step 0 with a zero-length data stage, s0 = s2 = 255:    # init_on_alloc off, no spray   step0 window [0,255): nonzero=94/255   000: 00 80 60 06 00 00 ff ff 18 00 00 00 57 01 ea 01   010: 08 78 22 13 00 00 ff ff a8 c4 5f 80 00 80 ff ff    # same kernel, kmalloc-512 pre-seeded with an 8-byte tag   step0 window [0,255): nonzero=219/255  tagbytes=232    # identical run, init_on_alloc=1   step0 window [0,255): nonzero=0/255  tagbytes=0    # all three runs   step2 window [255,510): device words matched=62/62  a8 c4 5f 80 00 80 ff ff is the little-endian kernel text address ffff8000805fc4a8.  The step-2 window is unaffected, so the disclosure is exactly the step-0 region.  Zero the buffer, and require the step-0 transfer to deliver the full step0_resp_size bytes so a short data stage is reported as an error.  Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 14 | 7.2.6-1 | [DEBIAN-CVE-2026-80970](https://patchblox.com/security/data/fix/linux/debian-cve-2026-80970.md) | Sep 23, 2026 |

---

Data as of 2026-11-08T06:59:42Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
