一线运维实战手记 · 云计算 · 数据库 · 故障排查
2026年9月4日

CVE-2026-68148 [HIGH] – In the Linux kernel, the following vulnerability has been resolved: fscrypt: Add missing

未分类
📑 文章目录

In the Linux kernel, the following vulnerability has been resolved:

fscrypt: Add missing superblock check in find_or_insert_direct_key()

The legacy ‘fscrypt_direct_keys’ table caches master keys that are used
by v1 encryption policies that have FSCRYPT_POLICY_FLAG_DIRECT_KEY.
It’s just a global table for all filesystems (since the keys can be
provided by the legacy process-subscribed keyrings mechanism, which
makes it difficult to reuse super_block::s_master_keys).

The entries in it (‘struct fscrypt_direct_key’) do contain a super_block
pointer, though, for passing to fscrypt_destroy_inline_crypt_key() when
the last inode that references the key is evicted.

However, when finding the fscrypt_direct_key for an inode, we weren’t
actually comparing the super_block pointer. As a result, inodes with
different super_blocks could point to the same fscrypt_direct_key. That
could extend the lifetime of a fscrypt_direct_key beyond the
super_block it points to, causing a use-after-free later.

Fix this by creating distinct fscrypt_direct_key structs for distinct
super_block structs.

Note that this problem doesn’t exist in the v2 policy equivalent
(“per-mode keys”), since the data structures there are per super_block.