UBUNTU-CVE-2026-74504: Medium severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: ALSA: seq: Fix division by zero in initializetimer() A userspace-driven ALSA timer (SNDUTIMER) lets an unprivileged user set the backing sndtimer's hardware resolution to an arbitrary 64-bit value via SNDRVTIMERIOCTLCREATE. sndutimercreate() only rejects zero. When such a timer is bound to a sequencer queue, initializetimer() computes the tick period as tmr->ticks = 1000000000 / (r freq); where r is that user-controlled resolution and freq is the sequencer update rate in Hz, clamped to MINFREQUENCY..MAXFREQUENCY (10..6250). A resolution of 2^63 makes the 64-bit product r freq wrap to zero for any even freq, including DEFAULTFREQUENCY (1000), so the division faults with a divide-by-zero. The division runs under tmr->lock with interrupts disabled, so the oops leaves the spinlock held and hangs the CPU. It is reachable by an unprivileged user with access to /dev/snd/timer and /dev/snd/seq. Oops: divide error: 0000 [#1] SMP KASAN PTI CPU: 7 UID: 1000 PID: 456 Comm: alsasequtimer Not tainted 7.2.0-rc4+ RIP: 0010:initializetimer.constprop.0+0x20a/0x2d0 sndseqtimerstart+0x15e/0x2b0 sndseqcontrolqueue+0x56f/0xba0 sndseqwrite+0x3e0/0x730 Reject an overflowing product with checkmuloverflow() and fall back to a single tick, which also avoids feeding a wrapped-but-nonzero divisor (e.g. 2^63 1000 mod 2^64 == 0, or other resolutions wrapping to a small value) into the period computation.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1
Event History
Frequently Asked Questions
Who can trigger this issue?
An unprivileged local user can trigger it if they have access to both /dev/snd/timer and /dev/snd/seq. The issue is reachable through a userspace-driven ALSA timer bound to a sequencer queue.
What is the practical impact of successful exploitation?
A crafted timer resolution can cause a divide-by-zero fault while a timer lock is held with interrupts disabled. The resulting oops leaves the spinlock held and can hang the affected CPU.
What input is needed to trigger the divide-by-zero?
The attacker creates an SND_UTIMER with a nonzero, attacker-controlled 64-bit hardware resolution and binds it to a sequencer queue. A resolution of 2^63 can make the resolution-times-frequency calculation wrap to zero for even update frequencies, including the default frequency of 1000 Hz.
What can be done if an update cannot be applied immediately?
Restrict untrusted users' access to /dev/snd/timer and /dev/snd/seq. This removes the device access required to reach the vulnerable path.