| Title | LinuxのLinux Kernelにおける有効期限後のメモリの解放の欠如に関する脆弱性 |
|---|---|
| Summary | 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に変更されました。この修正により問題は解決しました。 |
| Possible impacts | 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 |
| Solution | リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 |
| Publication Date | May 6, 2026, midnight |
| Registration Date | May 12, 2026, 10:20 a.m. |
| Last Update | May 12, 2026, 10:20 a.m. |
| CVSS3.0 : 警告 | |
| Score | 5.5 |
|---|---|
| Vector | 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 | Changed Details | Date of change |
|---|---|---|
| 1 | [2026年05月12日] 掲載 |
May 12, 2026, 10:20 a.m. |
| Summary | 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 |
|---|---|
| Publication Date | May 6, 2026, 9:16 p.m. |
| Registration Date | May 7, 2026, 4:09 a.m. |
| Last Update | May 11, 2026, 11:12 p.m. |
| Configuration1 | or higher | or less | more than | less than | |
| 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:*:*:*:*:*:* | |||||