LinuxのLinux Kernelにおける不特定の脆弱性
タイトル LinuxのLinux Kernelにおける不特定の脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。f2fsにおいて、同時に行われるアトミックコミットおよびチェックポイント書き込みによって引き起こされるIS_CHECKPOINTEDフラグの不整合問題を修正しました。SPOテスト中に、F2FSのマウント時にf2fs_recover_inode_pageから-EINVALエラーが返される問題が発生しました。この問題は以下のシナリオで発生しました。スレッドAとスレッドBの動作が関係します。スレッドAはf2fs_ioc_commit_atomic_writeからf2fs_do_sync_file(atomic = true)、f2fs_fsync_node_pages、そして最後のfolioのロック前にスケジュールされ、f2fs_write_checkpointがblock_operationsを介して最後のfolioを書き戻します。f2fs_flush_nat_entriesの前にスケジュールされ、set_fsync_mark(last_folio, 1)、set_dentry_mark(last_folio, 1)、folio_mark_dirty(last_folio)を実行し、続いて__write_node_folio(last_folio)、f2fs_down_read(&sbi-node_write)でブロックします。f2fs_flush_nat_entriesで{struct nat_entry}-flagにBIT(IS_CHECKPOINTED)が設定され、その後にf2fs_up_write(&sbi-node_write)でアンブロックされます。f2fs_write_checkpointはf2fs_do_write_node_page()を返し、f2fs_ioc_commit_atomic_writeが返却されます。スレッドAはf2fs_need_dentry_mark(sbi, ino)を呼び出し、last_folioはすでに一度書き込まれていますが、{struct nat_entry}-flagにはIS_CHECKPOINTEDが設定されておらず、スレッドBがf2fs_write_checkpointを完了した後にset_dentry_mark(last_folio, 1)と最後のfolioの再書き込みが発生しました。SPOおよび再起動後、{struct node_info}-blk_addrがNULL_ADDRでないことが検出され、これはスレッドBが正常にチェックポイントを書き込んだことを示しています。この問題はアトミック書き込みのシナリオでのみ発生します。通常のファイルfsync操作ではfolioは必ずダーティ状態であり、block_operations-f2fs_sync_node_pagesが正常にfolio書き込みを送信すればこのパスは実行されません。そうでない場合、f2fs_write_checkpointはfolio書き込み送信の完了を待つ必要があり、sbi-nr_pages[F2FS_DIRTY_NODES]が0より大きくなります。したがって、f2fs_need_dentry_markは{struct nat_entry}-flagにIS_CHECKPOINTEDフラグがないことを確認しましたが、folio書き込みがすでに送信されている状況は発生しません。よって、アトミックファイルfsyncのために、IS_CHECKPOINTEDフラグがチェックポイント書き込み完了を正しく示すように、sbi-node_writeは__write_node_folioを通じて取得する必要があります。

想定される影響 ・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 ・当該ソフトウェアが扱う情報について、書き換えは発生しません。 ・当該ソフトウェアが完全に停止する可能性があります。 
対策

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

公表日 2026年3月18日0:00
登録日 2026年6月3日17:03
最終更新日 2026年6月3日17:03
CVSS3.0 : 警告
スコア 5.5
ベクター CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Linux
Linux Kernel 4.7 以上 6.1.164 未満
Linux Kernel 6.13 以上 6.18.13 未満
Linux Kernel 6.19 以上 6.19.3 未満
Linux Kernel 6.2 以上 6.6.127 未満
Linux Kernel 6.7 以上 6.12.74 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年06月03日]
  掲載
2026年6月3日17:03