| タイトル | LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性 |
|---|---|
| 概要 | Linuxカーネルにおいて、kcm: 部分的なsendmsgエラー時にfrag_list内のゼロフラグメントskbを修正する脆弱性が修正されました。Syzkallerはfrag_list内にゼロフラグメントskbを含むメッセージを処理する際、kcm_write_msgs()で警告を報告していました。kcm_sendmsg()は現在のskbにMAX_SKB_FRAGSフラグメントを埋めると、新しいskb(tskb)を割り当ててデータコピー前にfrag_listに接続します。コピーが失敗した場合(例:ユーザーメモリからの-EFAULT)には、tskbはゼロフラグメントのままfrag_list内に残ります。SOCK_SEQPACKETでは部分データが既にコピーされている場合、エラー経路はこのメッセージをpartial_messageとして後に保存します。SOCK_SEQPACKETはsock_write_iter()が自動的にMSG_EORを設定するため、続くゼロ長書き込み(fd, NULL, 0)でメッセージを完了させ、sk_write_queueにキューイングします。kcm_write_msgs()はfrag_listを辿る際にWARN_ON(!skb_shinfo(skb)-nr_frags)を発生させました。TCPでは類似のクリーンアップが存在しますが、KCMにはこれが欠如していました。修正では、新規frag_listエントリ割当時に先行skb(frag_prev)を追跡し、エラー発生時に末尾skbがゼロフラグメントであればfrag_prevを使ってfrag_listから高速に解除・解放します。この処理は安定しており、条件が繰り返される場合のログ流出を防ぐためにWARN_ONはWARN_ON_ONCEに変更されました。この修正により問題は解決しました。 |
| 想定される影響 | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| 対策 | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| 公表日 | 2026年5月6日0:00 |
| 登録日 | 2026年5月12日10:20 |
| 最終更新日 | 2026年5月12日10:20 |
| CVSS3.0 : 警告 | |
| スコア | 5.5 |
|---|---|
| ベクター | CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
| Linux |
| Linux Kernel 4.6 以上 6.12.75 未満 |
| Linux Kernel 6.13 以上 6.18.16 未満 |
| Linux Kernel 6.19 以上 6.19.6 未満 |
| Linux Kernel 7.0 |
| No | 変更内容 | 変更日 |
|---|---|---|
| 1 | [2026年05月12日] 掲載 |
2026年5月12日10:20 |
| 概要 | In the Linux kernel, the following vulnerability has been resolved: kcm: fix zero-frag skb in frag_list on partial sendmsg error Syzkaller reported a warning in kcm_write_msgs() when processing a When kcm_sendmsg() fills MAX_SKB_FRAGS fragments in the current skb, head skb (msg being assembled, NOT yet in sk_write_queue) For SOCK_SEQPACKET with partial data already copied, the error path WARN_ON(!skb_shinfo(skb)->nr_frags) TCP has a similar pattern where skbs are enqueued before data copy Fix this by tracking the predecessor skb (frag_prev) when allocating Also change the WARN_ON to WARN_ON_ONCE to avoid flooding the log There are currently no KCM selftests in the kernel tree; a simple [1] https://gist.github.com/mrpre/a94d431c757e8d6f168f4dd1a3749daa |
|---|---|
| 公表日 | 2026年5月6日21:16 |
| 登録日 | 2026年5月7日4:09 |
| 最終更新日 | 2026年5月11日23:12 |
| 構成1 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.6 | 6.12.75 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 | 6.18.16 | |||
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 | 6.19.6 | |||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | |||||