Linux Distros のパッチ未適用の脆弱性: CVE-2026-89772

high Nessus プラグイン ID 345046

概要

Linux/Unix ホストには、ベンダーにより修正されていないことを示す脆弱性を持つ複数のパッケージがインストールされています。

説明

Linux/Unix ホストには、ベンダーが提供するパッチが利用できない脆弱性の影響を受ける複数のパッケージがインストールされています。

- btrfs:データライトバックコミット 095be159f3eb 中の Folio を書き込み保護(btrfs:Folio ダーティフラグのクリアを統一) extent_write_cache_pages() の folio_clear_dirty_for_io() 呼び出しをプレーンな folio_test_dirty() チェックと置換しました。ダーティフラグを消去するだけでなく、folio_clear_dirty_for_io() は folio_mkclean() も呼び出し、フォリオをマッピングする共有 mmap PTE を書き込み保護します。注意:フォリオの最後のセクター(非サブページの場合のための唯一のセクター)で dirty を消去する際に、submit_one_sector() の後半で folio_clear_dirty_for_io() を呼び出します。しかし、extent_write_cache_pages()でこの早いコールに負けました。
追加の書き込み保護がない場合、ファイル mmap-ed のプロセスは、ライトバックに使用されている間にセクターを変更でき、フォールトのない安定した folio(チェックサム、圧縮、コピーなど)を期待します。これは、いくつかの具体的なバグとして現れます。1. 大きなフォリオまたはサブページのセクターサイズの場合、フォリオ全体をカバーしない経歴を提出することが可能です。これが発生すると、folio_clear_dirty_for_io() を呼び出していない * 未呼び出し * の Folio のバイオが処理中になります。既存の mmap 化された PTE を持つタスクがこのウィンドウに(障害なしに)書き込みを行うと、破損する可能性があります。チェックサムまたは書き込み自体の進行中に書き込みが到着すると、チェックサムが無効になり、後に読み取り時に破損が報告される可能性があります。書き込みがチェックサム/書き込み完了後、最後のセクター dirty がクリアされる前に到着した場合、書き込みはページキャッシュに存在しますが、ダーティ追跡には影響せず、フォリオの送信が完全に終了し、ダーティビットがクリアされると失われます。これにより、fsync() が呼び出されても書き込みが失われます。2. メインの extent_writepage() ループとは別のバッチで行われるゾーン付き送信については、それらの送信に対して csum 違反のリスクもあります。ゾーン書き込みはmax_zone_append_sizeにクランプされ、フォリオと整列されないため、提出は 2 つのフォリオにまたがる可能性があります。extent_write_cache_pages() で処理されている最初の Folio は extent_write_locked_range() を呼び出し、次の Folio の一部範囲を送信しますが、その Folio の残りの部分はまだダーティである可能性があります。したがって、送信されたセクターで dirty をクリアしても folio_clear_dirty_for_io() は呼び出されず、同じ問題が発生します。extent_write_cache_pages() はこれらのバッチ送信された Folio をスキップするため (前の Folio による送信からの書き戻しのマークがすでに付けられています)、lock_delalloc_folios() で書き込み保護を追加する必要があります。3.インラインエクステントの場合、インラインエクステントをコピーした後/最中、フォリオでダーティをクリアする前に発生する書き込みが失われるリスクが微妙にあります。4.
EOF をまたがるフォリオでは、mmap が EOF を超えたゼロバイトを改ざんし、将来の障害時にゼロではなく不適切に表示されるようなバイトが永続化される可能性があります。5. 最後に、圧縮されたエクステントの場合、圧縮作業中にフォリオを変更すると、圧縮データが破損するリスクがあります。具体的には、run_delalloc_compressed()では、BTRFS_COMPRESSION_CHUNK_SIZE(512K)チャンクでcompress_file_range()を実行する作業をキューに入れます。これにより、その範囲でbtrfs_folio_clamp_clear_dirty()が呼び出されます。
非サブページの場合、これにより、常にフォリオ全体が安全にクリアされます。サブページについては、ここでも部分的にクリアされるリスクがあります。特に、2Mのフォリオが512Kの作業チャンクに分割され、すべてのチャンクcompress_file_range()ワーカーがフォリオのすべてのダーティビットマップをクリアしてfolio_clear_dirty_for_io()に到達する前に、1つのチャンクで圧縮作業を開始する可能性があると想像してください。提出範囲の端にある大きなフォリオも同様に、部分的にしかクリアされないリスクがあります。この特定のギャップは、同じシリーズの 2 番目のパッチによって導入されました: a4ef54dbb576 commit(btrfs:ページサイズの場合にセクターサイズを処理するために extent_range_clear_dirty_for_io() を作成<)folio_clear ---truncated--- への呼び出しを単純に復元することはできません(CVE-2026-89772)

Nessus は、ベンダーから報告されたパッケージの存在に依存していることに注意してください。

ソリューション

現時点で既知の解決策はありません。

参考資料

https://security-tracker.debian.org/tracker/CVE-2026-89772

プラグインの詳細

深刻度: High

ID: 345046

ファイル名: unpatched_CVE_2026_89772.nasl

バージョン: 1.1

タイプ: Local

エージェント: unix

ファミリー: Misc.

公開日: 2026/9/12

更新日: 2026/9/12

サポートされているセンサー: Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 4.3

パーセンタイル: 53.43

CVSS v2

リスクファクター: Low

基本値: 3.3

現状値: 2.8

ベクトル: CVSS2#AV:L/AC:M/Au:N/C:N/I:P/A:P

CVSS スコアのソース: CVE-2026-89772

CVSS v3

リスクファクター: High

基本値: 7.1

現状値: 6.5

ベクトル: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

現状ベクトル: CVSS:3.0/E:U/RL:U/RC:C

脆弱性情報

CPE: cpe:/o:debian:debian_linux:14.0, p-cpe:/a:debian:debian_linux:linux

必要な KB アイテム: Host/local_checks_enabled, Host/cpu, global_settings/vendor_unpatched, Host/OS/identifier

エクスプロイトの容易さ: No known exploits are available

脆弱性公開日: 2026/9/11

参照情報

CVE: CVE-2026-89772