Description
In the Linux kernel, the following vulnerability has been resolved:

ALSA: seq: Fix division by zero in initialize_timer()

A userspace-driven ALSA timer (SND_UTIMER) lets an unprivileged user set
the backing snd_timer's hardware resolution to an arbitrary 64-bit value
via SNDRV_TIMER_IOCTL_CREATE. snd_utimer_create() only rejects zero.

When such a timer is bound to a sequencer queue, initialize_timer()
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 MIN_FREQUENCY..MAX_FREQUENCY (10..6250).
A resolution of 2^63 makes the 64-bit product r * freq wrap to zero for
any even freq, including DEFAULT_FREQUENCY (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: alsa_seq_utimer Not tainted 7.2.0-rc4+
RIP: 0010:initialize_timer.constprop.0+0x20a/0x2d0
snd_seq_timer_start+0x15e/0x2b0
snd_seq_control_queue+0x56f/0xba0
snd_seq_write+0x3e0/0x730

Reject an overflowing product with check_mul_overflow() 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.
Published: 2026-08-15
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

An unprivileged user can create an ALSA user‑driven timer with an arbitrary 64‑bit resolution value via SNDRV_TIMER_IOCTL_CREATE. When such a timer is bound to a sequencer queue, the kernel computes the tick period with the expression 1000000000/(r*freq). If the resolution r is set to 2^63, r multiplied by any even frequency wraps to zero, causing a divide‑by‑zero fault inside initialize_timer(). The fault occurs while holding a spinlock with interrupts disabled, leaving the lock held and the CPU hung. This results in a kernel panic (OOPS) and effectively a denial of service on the affected system.

Affected Systems

All Linux kernel installations that include ALSA and expose the /dev/snd/timer and /dev/snd/seq device nodes are affected. No specific kernel release numbers are listed as impacted, implying that any version before the patch could be vulnerable until the kernel is updated to the latest stable kernel.

Risk and Exploitability

The vulnerability is exploitable by any local user who has permission to open /dev/snd/timer and /dev/snd/seq. The CVSS score of 5.5 indicates medium severity and the EPSS score is below 1%, suggesting a low likelihood of exploitation. The exploit path results in a divide‑by‑zero during tick period calculation, causing the kernel to panic and a system hang. This local privilege escalation to denial of service can affect the entire system.

Generated by OpenCVE AI on August 21, 2026 at 20:18 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the ALSA timer fix (commit 21e19688433452dfbbbe6b2bb670dea6eb92f0f6 and related patches).
  • If an immediate kernel upgrade is not possible, limit access to the ALSA timer and sequencer device nodes by setting the file permissions of /dev/snd/timer and /dev/snd/seq to root only, or by applying udev rules that restrict their use to privileged users.
  • Apply a local temporary patch to the kernel source that adds an overflow check to initialize_timer(), thereby preventing the divide‑by‑zero if an official update be applied immediately.

Generated by OpenCVE AI on August 21, 2026 at 20:18 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DSA Debian DSA DSA-6466-1 linux security update
History

Fri, 21 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-190
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Sat, 15 Aug 2026 15:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-369

Sat, 15 Aug 2026 12:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ALSA: seq: Fix division by zero in initialize_timer() A userspace-driven ALSA timer (SND_UTIMER) lets an unprivileged user set the backing snd_timer's hardware resolution to an arbitrary 64-bit value via SNDRV_TIMER_IOCTL_CREATE. snd_utimer_create() only rejects zero. When such a timer is bound to a sequencer queue, initialize_timer() 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 MIN_FREQUENCY..MAX_FREQUENCY (10..6250). A resolution of 2^63 makes the 64-bit product r * freq wrap to zero for any even freq, including DEFAULT_FREQUENCY (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: alsa_seq_utimer Not tainted 7.2.0-rc4+ RIP: 0010:initialize_timer.constprop.0+0x20a/0x2d0 snd_seq_timer_start+0x15e/0x2b0 snd_seq_control_queue+0x56f/0xba0 snd_seq_write+0x3e0/0x730 Reject an overflowing product with check_mul_overflow() 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.
Title ALSA: seq: Fix division by zero in initialize_timer()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:20:43.047Z

Reserved: 2026-08-15T05:44:03.908Z

Link: CVE-2026-74504

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T13:17:55.427

Modified: 2026-08-17T06:19:46.953

Link: CVE-2026-74504

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-74504 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-21T20:30:07Z

Weaknesses