| タイトル | LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性 |
|---|---|
| 概要 | Linuxカーネルにおいて、以下の脆弱性が修正されました。ALSAのcaiaqでのinit_card関数におけるスタックの境界外読み取りの問題です。このループはカードの短縮名から空白を除去したコピーを作成しますが、境界チェックに`len sizeof(card-id)`を使用していました。sizeof(card-id)は16であり、ローカルのidバッファも16バイトです。そのため、16文字の空白以外の文字を書き込むとバッファ全体が埋まり、終端のヌルバイトが上書きされてしまいます。その後、このヌル終端されていない文字列がsnd_card_set_id()からcopy_valid_id_string()に渡されると、`while (*nid && ...)`のループによりスタックバッファの終端を越えて読み取り、スタックの内容を読み出してしまいます。多くの非ASCIIかつ非空白文字(例えばマルチバイトUTF-8)を含む製品名のUSBデバイスでは、以下のように確実にこの問題が発生します。BUG: KASAN: stack-out-of-bounds in copy_valid_id_string sound/core/init.c:696 [inline] BUG: KASAN: stack-out-of-bounds in snd_card_set_id_no_lock+0x698/0x74c sound/core/init.c:718。オフバイワン問題は2009年6月(v2.6.31-rc1)のコミットbafeee5b1f8d("ALSA: snd_usb_caiaq: give better shortname")以来存在していました。この空白除去ループを最初に導入したコードは、コピーの際にヌル終端文字を考慮していませんでした。本問題はループの境界値を`sizeof(card-id) - 1`に変更し、少なくとも1バイトをヌル終端のために確保することで修正されました。 |
| 想定される影響 | 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| 対策 | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年5月1日0:00 |
| 登録日 | 2026年5月13日10:25 |
| 最終更新日 | 2026年5月13日10:25 |
| CVSS3.0 : 重要 | |
| スコア | 7.1 |
|---|---|
| ベクター | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H |
| Linux |
| Linux Kernel 2.6.31 以上 5.10.253 未満 |
| Linux Kernel 5.11 以上 5.15.203 未満 |
| Linux Kernel 5.16 以上 6.1.168 未満 |
| Linux Kernel 6.13 以上 6.18.22 未満 |
| Linux Kernel 6.19 以上 6.19.12 未満 |
| Linux Kernel 6.2 以上 6.6.134 未満 |
| Linux Kernel 6.7 以上 6.12.81 未満 |
| Linux Kernel 7.0 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年05月13日] 掲載 |
2026年5月13日10:25 |
| 概要 | In the Linux kernel, the following vulnerability has been resolved: ALSA: caiaq: fix stack out-of-bounds read in init_card The loop creates a whitespace-stripped copy of the card shortname When this non-null-terminated string is later passed to A USB device with a product name containing many non-ASCII, non-space BUG: KASAN: stack-out-of-bounds in copy_valid_id_string The off-by-one has been present since commit bafeee5b1f8d ("ALSA: Fix this by changing the loop bound to `sizeof(card->id) - 1`, |
|---|---|
| 公表日 | 2026年5月2日0:16 |
| 登録日 | 2026年5月2日4:07 |
| 最終更新日 | 2026年5月2日0:24 |