製品・ソフトウェアに関する情報
LinuxのLinux Kernelにおける整数アンダーフローの脆弱性
Title LinuxのLinux Kernelにおける整数アンダーフローの脆弱性
Summary

Linuxカーネルにおいて、以下の脆弱性が修正されました。xfsでは、空の属性リーフフリーマップエントリを削除する処理の問題です。コミット2a2b5932db6758("xfs: fix attr leaf header freemap.size underflow")にて、Brian Foster氏は、xattrエントリ配列の末尾にある小さなフリーマップが、エントリ配列の拡張によって消費されるスペースを引く際にサイズのアンダーフローを引き起こす可能性があることを指摘しました。フリーマップエントリは3つしかなく、リーフブロックのすべての空きスペースの完全なインデックスではありません。このコードは、サイズが0だがベースがゼロでないフリーマップエントリを残すことがあります。以降のsetxattr操作により、ベースが別のフリーマップエントリと重なるまで増加する場合があります。これはそれ自体は問題ではなく、_leaf_addで空きスペースを検索するコードはサイズ0のフリーマップエントリを無視します。しかし、_leaf_add内のフリーマップ更新コードには別のバグがあり、新たに配列に追加されたxattrエントリの途中から始まるフリーマップエントリを更新しません。これにより、同じベースでサイズが異なる二つのフリーマップエントリ(「押し上げられた」エントリは0サイズ、実際に空きスペースを追跡するエントリは0でないサイズ)が存在する状態となります。続く_leaf_addはエントリ配列上にxattr namevalueエントリを割り当て、データの損失を引き起こす可能性があります。しかし、この問題の修正は後日行われる予定です。現在は、サイズが0のフリーマップエントリのベースをゼロにして混乱の可能性を排除しています。フリーマップは空きスペースの完全なインデックスを意図していないため、新しいxattrに空きスペースが見つからなければブロック圧縮がトリガーされ、フリーマップが再生成されます。このバグはコードベースに長期間存在していました。

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

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

Publication Date May 6, 2026, midnight
Registration Date May 13, 2026, 10:23 a.m.
Last Update May 13, 2026, 10:23 a.m.
CVSS3.0 : 重要
Score 8.8
Vector CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected System
Linux
Linux Kernel 2.6.12
Linux Kernel 2.6.12.1 以上 5.10.252 未満
Linux Kernel 5.11 以上 5.15.202 未満
Linux Kernel 5.16 以上 6.1.165 未満
Linux Kernel 6.13 以上 6.18.16 未満
Linux Kernel 6.19 以上 6.19.6 未満
Linux Kernel 6.2 以上 6.6.128 未満
Linux Kernel 6.7 以上 6.12.75 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
Change Log
No Changed Details Date of change
1 [2026年05月13日]
  掲載
May 13, 2026, 10:23 a.m.

NVD Vulnerability Information
CVE-2026-43187
Summary

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

xfs: delete attr leaf freemap entries when empty

Back in commit 2a2b5932db6758 ("xfs: fix attr leaf header freemap.size
underflow"), Brian Foster observed that it's possible for a small
freemap at the end of the end of the xattr entries array to experience
a size underflow when subtracting the space consumed by an expansion of
the entries array. There are only three freemap entries, which means
that it is not a complete index of all free space in the leaf block.

This code can leave behind a zero-length freemap entry with a nonzero
base. Subsequent setxattr operations can increase the base up to the
point that it overlaps with another freemap entry. This isn't in and of
itself a problem because the code in _leaf_add that finds free space
ignores any freemap entry with zero size.

However, there's another bug in the freemap update code in _leaf_add,
which is that it fails to update a freemap entry that begins midway
through the xattr entry that was just appended to the array. That can
result in the freemap containing two entries with the same base but
different sizes (0 for the "pushed-up" entry, nonzero for the entry
that's actually tracking free space). A subsequent _leaf_add can then
allocate xattr namevalue entries on top of the entries array, leading to
data loss. But fixing that is for later.

For now, eliminate the possibility of confusion by zeroing out the base
of any freemap entry that has zero size. Because the freemap is not
intended to be a complete index of free space, a subsequent failure to
find any free space for a new xattr will trigger block compaction, which
regenerates the freemap.

It looks like this bug has been in the codebase for quite a long time.

Publication Date May 6, 2026, 9:16 p.m.
Registration Date May 7, 2026, 4:08 a.m.
Last Update May 12, 2026, 5:38 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 2.6.12.1 5.10.252
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 5.15.202
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 6.1.165
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 6.6.128
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 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:2.6.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc5:*:*:*:*:*:*
Related information, measures and tools
Common Vulnerabilities List