JVNDB-2026-017566 | |
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を通じて取得する必要があります。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.5 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/03/18 |
| 登録日 | 2026/06/03 |
| 最終更新日 | 2026/06/03 |



