CVE-2026-68148CWE-416

CVE-2026-68148

High · published August 10, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
0.5
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00091 · 0.5th percentile
Weakness
CWE-416 · Use After Free
Published
2026-08-10T17:20Z
References (6)
EPSS history
Timeline
  • 10 AUG 11:59Z
    fscrypt: Add missing superblock check in find_or_insert_direct_key()
    cvelistv5