CVE-2026-98314 in Linux
Zusammenfassung
von VulDB • 06.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ALSA: pcm: Festlegen von timer->private_data vor der Registrierung des PCM-Timers
snd_pcm_timer_init() ruft snd_device_register() auf, um die neue struct snd_timer in die globale Timer-Liste einzubinden, während sie noch hw.c_resolution = snd_pcm_timer_resolution (sowie hw.start/hw.stop) enthält, und setzt erst danach timer->private_data = substream.
Sobald sich der Timer unter register_mutex in der Liste befindet, kann ein paralleler Lesezugriff denselben Mutex nutzen, um darauf zuzugreifen und diese Callback-Funktionen aufzurufen. /proc/asound/timers tut dies über c_resolution(), und snd_timer_open()+snd_timer_start() erreichen start()/stop() auf die gleiche Weise. Alle drei Funktionen dereferenzieren timer->private_data, das für diesen kurzen Zeitraum NULL ist, was zu einer Dereferenzierung eines NULL-Zeigers führt:
substream = timer->private_data; return substream->runtime ? ... // substream is NULL
Verschieben Sie die Zuweisung von private_data/private_free vor snd_device_register(), damit der Timer niemals ohne gesetztes private_data in der Liste sichtbar ist. Im Fehlerpfad von snd_device_register() kann nun private_free() (snd_pcm_timer_free()) ausgeführt werden, führt jedoch nur zu substream->timer = NULL, was an dieser Stelle bereits NULL ist, da substream->timer erst nach einer erfolgreichen Registrierung einmalig auf den neuen Timer gesetzt wird – der Fehlerpfad bleibt somit sicher.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.