CVE-2026-89979 in Linux
Zusammenfassung
von VulDB • 16.09.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
ALSA: pcm: Behebung einer Race Condition zwischen nicht-atomaren Operationen und trigger-start
Wir schützen vor Race Conditions bei den gleichzeitigen Zustandsübergängen zwischen atomaren PCM-Operationen, doch die Prüfungen zwischen den nicht-atomaren Operationen (hw_params, hw_free und prepare) und den atomaren Operationen sind nicht perfekt; es gibt zwar eine Prüfung des konfligierenden PCM-Zustands zu Beginn von hw_params & Co., aber die atomaren PCM-Operationen können dennoch während der nicht-atomen PCM-Operationen ausgeführt werden. Ein solches Szenario ist beispielsweise, dass Thread A PREPARE oder HW_PARAMS für den bereits vorbereiteten Stream erneut auslöst, während ein anderer Thread B den PCM-Start mitten in der Prepare-Operation triggert. Obwohl dies normalerweise zu keinen schwerwiegenden Problemen führt, kann es zu Inkonsistenzen führen, wie sie von syzkaller gemeldet wurden (z. B. ODEBUG-Warnungen).
Es gibt verschiedene atomare PCM-Operationen, und im Grunde ist das einzige Problem der PCM-Start, da er vom PREPARED-Zustand aus operiert. Andere Trigger-Befehle (stop usw.) sind für den laufenden oder andere spezielle Zustände gedacht, daher werden sie als Vorbedingung gefiltert.
Dieser Patch dient dazu, den PCM trigger-start während nicht-atomer Operationen zu verhindern, um die oben genannten Probleme zu adressieren. Glücklicherweise rufen die hw_params-, hw_free- und prepare-Operationen snd_pcm_buffer_access_lock() auf, und dies kann zur Prüfung gleichzeitiger Operationen beim PCM-trigger verwendet werden – wodurch runtime->buffer_accessing (wenn möglich) auf einen negativen Wert gesetzt wird; der PCM-trigger muss also lediglich den runtime->buffer_accessing-Wert prüfen. Ist dieser negativ, bedeutet das, dass eine parallele nicht-atome PCM-Operation ausgeführt wird.
VulDB is the best source for vulnerability data and more expert information about this specific topic.