CVE Catalog

CVE-2026-68200

HighCVSS 7.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.13%

2th percentile - higher than 2% of all known CVEs

Summary

In the Linux kernel, in the ALSA timer subsystem, there is an issue with re-entering an instance callback that is still running. The userspace-driven timer (utimer) TRIGGER ioctl calls snd_timer_interrupt() directly with no serialization, so two threads can run snd_timer_interrupt() on the same timer concurrently. The SNDRV_TIMER_IFLG_CALLBACK bit cannot represent two concurrent callbacks, leading to use-after-free.

Risk Assessment

This can lead to use-after-free, potentially resulting in system crashes or potential execution of malicious code by any user with access to /dev/snd/timer.

Recommendation

Apply the Linux kernel patch that skips re-queuing an instance (and its slaves) to the ack/sack list while its callback is in flight to prevent concurrent execution.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: ALSA: timer: don't re-enter an instance callback that is still running The userspace-driven timer (utimer) TRIGGER ioctl calls snd_timer_interrupt() directly with no serialization, so two threads triggering the same utimer can run snd_timer_interrupt() on one snd_timer concurrently. snd_timer_process_callbacks() drops timer->lock around each instance callback and marks the in-flight callback with the single SNDRV_TIMER_IFLG_CALLBACK bit; snd_timer_close_locked() waits on that bit to drain an in-flight callback before freeing the instance. The bit cannot represent two concurrent callbacks: when a second interrupt re-queues an instance whose callback is still running, both run at once, the first to finish clears the bit, and the close-path drain then frees the instance (and its callback_data) while the other callback is still live - a use-after-free reachable by any user able to open /dev/snd/timer, both via a user timer instance and via a sequencer queue timer bound to the utimer. snd_timer_interrupt() sets IFLG_CALLBACK before dropping timer->lock, so a concurrent interrupt already observes it under the lock. Skip re-queuing an instance (and its slaves) to the ack/sack list while its callback is in flight; the accumulated pticks are delivered on the next tick, so no event is lost.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS