製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性
Title LinuxのLinux Kernelにおける境界外読み取りに関する脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました:smbのclientのcheck_wsl_eas()内にあるオフバイ8の境界チェックの修正です。この境界チェックはEA名と値の終端として(u8 *)ea + nlen + 1 + vlenを使用していますが、ea_dataはeaのオフセット0ではなく、sizeof(struct smb2_file_full_ea_info) = 8の位置にあります。strncmp()は後にea-ea_data[0..nlen-1]を読み取り、その後に値のバイトがea_data[nlen+1..nlen+vlen]に続きます。したがって、実際の終端はea-ea_data + nlen + 1 + vlenとなります。ポインタ演算は難しいものです。以前のチェックである(u8 *)ea end - sizeof(*ea)は8バイトのヘッダーが境界内にあることのみを保証していましたが、最後のEAはレスポンスの終端近くの8バイト内に配置されているため、名前と値のバイトがiovの終端を超えて読み取られてしまう問題がありました。この混乱を修正するために、境界チェックの基準をea-ea_dataに変更しました。この脆弱性を悪用されると、「信頼されていない」サーバーが最大8バイトのカーネルヒープ情報をEA名の比較時にリークさせ、データがどのWSLのxattrとして解釈されるかに影響を与える可能性があります。

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

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

Publication Date April 24, 2026, midnight
Registration Date May 1, 2026, 10:48 a.m.
Last Update May 1, 2026, 10:48 a.m.
CVSS3.0 : 重要
Score 7.1
Vector CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
Affected System
Linux
Linux Kernel 6.13 以上 6.18.24 未満
Linux Kernel 6.19 以上 6.19.14 未満
Linux Kernel 6.6.32 以上 6.6.136 未満
Linux Kernel 6.9 以上 6.12.83 未満
Linux Kernel 7.0 以上 7.0.1 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月01日]
  掲載
May 1, 2026, 10:48 a.m.

NVD Vulnerability Information
CVE-2026-31614
Summary

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

smb: client: fix off-by-8 bounds check in check_wsl_eas()

The bounds check uses (u8 *)ea + nlen + 1 + vlen as the end of the EA
name and value, but ea_data sits at offset sizeof(struct
smb2_file_full_ea_info) = 8 from ea, not at offset 0. The strncmp()
later reads ea->ea_data[0..nlen-1] and the value bytes follow at
ea_data[nlen+1..nlen+vlen], so the actual end is ea->ea_data + nlen + 1
+ vlen. Isn't pointer math fun?

The earlier check (u8 *)ea > end - sizeof(*ea) only guarantees the
8-byte header is in bounds, but since the last EA is placed within 8
bytes of the end of the response, the name and value bytes are read past
the end of iov.

Fix this mess all up by using ea->ea_data as the base for the bounds
check.

An "untrusted" server can use this to leak up to 8 bytes of kernel heap
into the EA name comparison and influence which WSL xattr the data is
interpreted as.

Publication Date April 25, 2026, 12:16 a.m.
Registration Date April 25, 2026, 4:07 a.m.
Last Update April 30, 2026, 3:03 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.6.32 6.6.136
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.9 6.12.83
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 6.18.24
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 6.19.14
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 7.0 7.0.1
Related information, measures and tools
Common Vulnerabilities List