LinuxのLinux Kernelにおける整数アンダーフローの脆弱性
タイトル LinuxのLinux Kernelにおける整数アンダーフローの脆弱性
概要

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に空きスペースが見つからなければブロック圧縮がトリガーされ、フリーマップが再生成されます。このバグはコードベースに長期間存在していました。

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

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

公表日 2026年5月6日0:00
登録日 2026年5月13日10:23
最終更新日 2026年5月13日10:23
CVSS3.0 : 重要
スコア 8.8
ベクター CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
影響を受けるシステム
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 (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年05月13日]
  掲載
2026年5月13日10:23

NVD脆弱性情報
CVE-2026-43187
概要

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.

公表日 2026年5月6日21:16
登録日 2026年5月7日4:08
最終更新日 2026年5月12日5:38
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
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:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧