JVNDB-2026-014363 | |
LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました。ksmbdのipc_validate_msg()関数内でレスポンスサイズの検証を行います。ipc_validate_msg()は、攻撃者が制御可能なデーモンレスポンスのフィールドを固定構造体サイズに加算または乗算し、各レスポンスタイプの予想メッセージサイズを符号なし整数の算術で計算します。次の3つの場合にオーバーフローが発生する可能性があります。KSMBD_EVENT_RPC_REQUESTでは、msg_sz = sizeof(struct ksmbd_rpc_command) + resp-payload_szとなります。KSMBD_EVENT_SHARE_CONFIG_REQUESTでは、msg_sz = sizeof(struct ksmbd_share_config_response) + resp-payload_szとなります。KSMBD_EVENT_LOGIN_REQUEST_EXTでは、msg_sz = sizeof(struct ksmbd_login_response_ext) + resp-ngroups * sizeof(gid_t)となります。resp-payload_szは__u32型、resp-ngroupsは__s32型です。各加算は符号なし整数でラップする可能性があり、sizeof(gid_t)との乗算は符号付きとsize_tの混用であるため、負のngroupsは乗算前にSIZE_MAXに変換されます。ラップしたmsg_szの値がたまたまentry-msg_szと等しい場合、次の行でのサイズチェックを回避し、下流の消費者(smb2pdu.c:6742のrpc_resp-payload_szを使うmemcpyやksmbd_alloc_userのkmemdupでresp_ext-ngroupsを使用)が未検証の長さを信用してしまいます。RPC_REQUESTおよびSHARE_CONFIG_REQUESTのパスにはcheck_add_overflow()を使用し、整数オーバーフローを検出しつつ機能的なペイロードサイズを制限しません。ユーザー空間のksmbd-toolsはNetShareEnumAllのような呼び出しでNDRレスポンスを4096バイト単位で増加させるため、レスポンス側でのハードな転送上限は不適切です。LOGIN_REQUEST_EXTについては、resp-ngroupsが符号付きの[0, NGROUPS_MAX]範囲外であれば受付けず、ipc_validate_msg()でエラーを報告してIPC境界で検出できるようにしています。この制限により乗算・加算はUINT_MAXを大幅に下回ります。今後は冗長となるngroupsチェックとksmbd_alloc_user()内のpr_errを削除します。これはリクエスト側を強化したaab98e2dbd64("ksmbd: 32ビットシステムでの整数オーバーフロー修正")のレスポンス側に対応した修正です。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.1 (重要) [その他]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/01 |
| 登録日 | 2026/05/08 |
| 最終更新日 | 2026/05/08 |



