# CVE-2026-80628: ALSA: seq: oss: Serialize readq reset state with q->lock

CVE-2026-80628 is fixed in linux on 1 platform, first by DEBIAN-CVE-2026-80628, released August 29, 2026. It is not reported as exploited. Patch Radar priority: High.

- Web page: https://patchblox.com/security/cve/CVE-2026-80628
- Priority: High
- CVSS: 7.8 (Low)
- EPSS: 0.0018
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Aug 28, 2026
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-80628

## Description

In the Linux kernel, the following vulnerability has been resolved:  ALSA: seq: oss: Serialize readq reset state with q->lock  snd_seq_oss_readq_clear() resets qlen, head, and tail without q->lock even though the normal reader and producer paths serialize the same ring state under that spinlock. A reset can therefore race snd_seq_oss_readq_free() or snd_seq_oss_readq_put_event() and leave stale records in the queue, drop freshly queued ones, or report the wrong readiness after wakeup. KCSAN reports a data race between snd_seq_oss_readq_clear() and snd_seq_oss_readq_free().  Take q->lock while clearing the ring and resetting input_time. Factor the enqueue logic into a caller-locked helper so snd_seq_oss_readq_put_timestamp() updates its suppression state under the same lock instead of racing the reset path.  The buggy scenario involves two paths, with each column showing the order within that path:  reset path:                      locked readq updater: 1. snd_seq_oss_reset() or        1. A reader or callback producer    release reaches                  takes q->lock on the same queue.    snd_seq_oss_readq_clear(). 2. snd_seq_oss_readq_clear()     2. The updater tests or modifies    resets qlen, head, tail,         qlen, head, and tail.    and input_time. 3. snd_seq_oss_readq_clear()     3. The updater completes its    wakes sleepers on                read-modify-write sequence.    q->midi_sleep. 4. Without q->lock, the reset    4. The resulting ring state drives    can overlap the locked           later reads and readiness.    update.  KCSAN reports:  BUG: KCSAN: data-race in snd_seq_oss_readq_clear / snd_seq_oss_readq_free  write to 0xffff8881069fe608 of 4 bytes by task 120516 on cpu 0:   snd_seq_oss_readq_free+0x6c/0x80   snd_seq_oss_read+0xcb/0x250   odev_read+0x38/0x60   vfs_read+0xff/0x600   ksys_read+0xb4/0x140   __x64_sys_read+0x46/0x60   do_syscall_64+0xbb/0x2f0   entry_SYSCALL_64_after_hwframe+0x77/0x7f  read to 0xffff8881069fe608 of 4 bytes by task 120517 on cpu 1:   snd_seq_oss_readq_clear+0x1f/0x90   snd_seq_oss_reset+0xa7/0xf0   snd_seq_oss_ioctl+0x6f6/0x7e0   odev_ioctl+0x56/0xc0   __x64_sys_ioctl+0xd1/0x120   do_syscall_64+0xbb/0x2f0   entry_SYSCALL_64_after_hwframe+0x77/0x7f  value changed: 0x00000001 -> 0x00000000

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 13.5 (trixie) | 6.12.115-2 | [DEBIAN-CVE-2026-80628](https://patchblox.com/security/data/fix/linux/debian-cve-2026-80628.md) | Aug 29, 2026 |
| Linux | linux Debian 14 | 7.1.5-1 | [DEBIAN-CVE-2026-80628](https://patchblox.com/security/data/fix/linux/debian-cve-2026-80628.md) | Aug 29, 2026 |

---

Data as of 2026-11-08T00:53:09Z 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.
