製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
Title LinuxのLinux Kernelにおける解放済みメモリの使用に関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。ALSAのpcmに関するもので、snd_pcm_drain()のリンクされたストリームのruntimeに対するuse-after-freeの問題です。ドレインループ内で、ローカル変数'runtime'がリンクされたストリームのruntime(2157行目のruntime = s-runtime)に再代入されます。その後、2169行目でストリームロックを解放した後に、コードはruntime-no_period_wakeup、runtime-rate、およびruntime-buffer_size(2170-2178行目)にアクセスします。これらのフィールドはすべて、ロックや参照カウントによってその寿命が保護されていないリンクされたストリームのruntimeを参照していました。リンクされたストリームのファイルディスクリプタに対する同時のclose()操作によって、snd_pcm_release_substream() → snd_pcm_drop() → pcm_release_private() → snd_pcm_unlink() → snd_pcm_detach_substream() → kfree(runtime)が呼ばれます。同期機構が存在しないため、drainパスが古いポインタを参照している間にkfree(runtime)が完了してしまいました。修正は、ストリームロックを保持している間に必要なruntimeのフィールド(no_period_wakeup、rate、buffer_size)をローカル変数にキャッシュし、ロック解放後はキャッシュされた値を使用する方法によって行われました。

Possible impacts 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
Solution

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

Publication Date May 8, 2026, midnight
Registration Date May 25, 2026, 10:21 a.m.
Last Update May 25, 2026, 10:21 a.m.
CVSS3.0 : 重要
Score 7.8
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 3.0 以上 5.10.253 未満
Linux Kernel 5.11 以上 6.1.167 未満
Linux Kernel 6.13 以上 6.18.19 未満
Linux Kernel 6.19 以上 6.19.9 未満
Linux Kernel 6.2 以上 6.6.130 未満
Linux Kernel 6.7 以上 6.12.78 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月25日]
  掲載
May 25, 2026, 10:21 a.m.

NVD Vulnerability Information
CVE-2026-43437
Summary

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

ALSA: pcm: fix use-after-free on linked stream runtime in snd_pcm_drain()

In the drain loop, the local variable 'runtime' is reassigned to a
linked stream's runtime (runtime = s->runtime at line 2157). After
releasing the stream lock at line 2169, the code accesses
runtime->no_period_wakeup, runtime->rate, and runtime->buffer_size
(lines 2170-2178) — all referencing the linked stream's runtime without
any lock or refcount protecting its lifetime.

A concurrent close() on the linked stream's fd triggers
snd_pcm_release_substream() → snd_pcm_drop() → pcm_release_private()
→ snd_pcm_unlink() → snd_pcm_detach_substream() → kfree(runtime).
No synchronization prevents kfree(runtime) from completing while the
drain path dereferences the stale pointer.

Fix by caching the needed runtime fields (no_period_wakeup, rate,
buffer_size) into local variables while still holding the stream lock,
and using the cached values after the lock is released.

Publication Date May 9, 2026, 12:16 a.m.
Registration Date May 9, 2026, 4:15 a.m.
Last Update May 12, 2026, 11:10 p.m.
Related information, measures and tools
Common Vulnerabilities List