CVE-2026-53193
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 — wyżej niż 4% wszystkich znanych CVE
Streszczenie
W jądrze Linuxa w podsystemie ALSA timer wykryto podatność na użycie po zwolnieniu (use-after-free). Podczas zwalniania obiektu timera (snd_timer_free) nie są prawidłowo odłączane instancje timerów podrzędnych (slave), które nadal wskazują na zwolniony obiekt, co może prowadzić do naruszenia bezpieczeństwa pamięci. Problem jest łatwy do wywołania przy użyciu nowego mechanizmu timerów przestrzeni użytkownika (CONFIG_SND_UTIMER).
Ocena ryzyka
Atakujący może wykorzystać tę podatność do eskalacji uprawnień lub wywołania odmowy usługi (DoS) poprzez celowe otwieranie i zamykanie plików timerów, podczas gdy inne aplikacje nadal mają do nich dostęp.
Rekomendacja
Należy niezwłocznie zaktualizować jądro Linuxa do wersji zawierającej poprawkę, która wymusza zamykanie wszystkich instancji timerów (w tym podrzędnych) podczas zwalniania obiektu timera.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: ALSA: timer: Forcibly close timer instances at closing When snd_timer object is freed via snd_timer_free() and still pending snd_timer_instance objects are assigned to the timer object, it tries to unlink all instances and just set NULL to each ti->timer, then releases the resources immediately. The problem is, however, when there are slave timer instances that are associated with a master instance linked to this timer: namely, those slave instances still point to the freed timer object although the master instance is unlinked, which may lead to user-after-free. The bug can be easily triggered particularly when a new userspace-driven timers (CONFIG_SND_UTIMER) is involved, since it can create and delete the timer object via a simple file open/close, while the other applications may keep accessing to that timer. This patch is an attempt to paper over the problem above: now instead of just unlinking, call snd_timer_close[_locked]() forcibly for each pending timer instance, so that all assigned slave timer instances are properly detached, too. Since snd_timer_close() might be called later by the driver that created that instance, the check of SNDRV_TIMER_IFLG_DEAD is added at the beginning, too.

