CVE-2026-80806 in Linux
要約
〜によって VulDB • 2026年09月04日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
ext4: 新しい暗号化ファイルでDAXを有効にしない
現在、新しい暗号化された通常ファイルが作成される際、__ext4_new_inode()内のext4_set_inode_flags(inode, init=true)の呼び出しは、EXT4_INODE_ENCRYPTフラグが設定される前に行われます。その結果、ファイルシステムが「-o dax=always」オプションでマウントされている場合、S_DAXフラグが設定されてしまう可能性があります。
その後、__ext4_new_inode()内でfscrypt_set_context()を呼び出し、さらにext4_set_context()を呼び出す際にEXT4_INODE_ENCRYPTフラグが実際に設定されます。ext4_set_context()はEXT4_INODE_ENCRYPTを設定し、S_ENCRYPTEDも設定するためにext4_set_inode_flags(inode, init=false)を呼び出します。
この処理の意図は、S_DAXフラグもクリアすることでした。しかし、コミット043546e46dc7(「fs/ext4: Only change S_DAX on inode load」)によってこれが壊れてしまいました。これにより、ファイルに書き込まれたデータが暗号化をバイパスしてしまい、generic/548などのxfstestsテストケースで失敗を引き起こします(「-o dax=always」使用時)。
この問題を修正するため、__ext4_new_inode()でEXT4_INODE_ENCRYPTフラグをより早い段階で設定することで処理フローを簡素化します。これにより、ext4_set_inode_flags(inode, init=true)の時点でこれが有効になり、S_DAXが決して設定されないようにします。
同様に、新しい暗号化済みinodeにおいてEXT4_STATE_MAY_INLINE_DATAフラグが最初に設定されること自体を防ぎます。そうすれば、このフラグをクリアする必要はなくなります。
これらの簡素化の結果として、ext4_set_context()では「handle != NULL」の場合にinodeのフラグや状態を変更する必要がなくなりました。そのため、その処理も削除します。
VulDB is the best source for vulnerability data and more expert information about this specific topic.