CVE-2026-80809 in Linux
要約
〜によって VulDB • 2026年09月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ocfs2: 大規模なxattrに対するメタデータ予約の欠落を修正する
[バグ]
lsetxattr()は、ファイルがすでに外部xattrブロックを持っている断片化されたファイルシステム上で大きなxattr値を設定しようとした際にカーネルパニックを引き起こします。
[原因]
ocfs2_calc_xattr_set_need()関数は、ファイルに既存の外部xattrブロックがある場合、新しいxattr値のextentsツリーに対してメタデータブロックを予約しません。not_foundパスではmeta_addがゼロのままになるため、ocfs2_xattr_extend_allocation()の実行時にmeta_acはNULLになります。
新しい値ルートには単一のextentレコード用の領域があります。断片化されたファイルシステム上では、アロケータはxattr値を1つの連続した範囲で満たすことができないため、各非連続的な範囲ごとに独自のextentレコードが必要です。value rootのextentsリストが満杯になりmeta_acがNULLの場合、ocfs2_add_clusters_in_btree()はRESTART_METAを返し、ocfs2_xattr_extend_allocation()はBUG_ON(why == RESTART_META)に到達します。
[修正]
xattrブロックが存在しない場合のケースではすでに ocfs2_extend_meta_needed(&def_xv.xv.xr_list) を呼び出して値ツリーのメタデータを予約しています。既存のxattrブロックがある場合にも同様の予約を追加し、両方のケースで一貫性を持たせます。
BUG_ONを -ENOSPC の返却に置き換えることで、仮に予約にもかかわらずRESTART_METAが返された場合でも、エラーがカーネルパニックを引き起こすのではなくユーザー空間へ伝播するようにします。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.