Skip to main content

Linux Kernel EUVDEUVD-2026-55532

| CVE-2026-68147 HIGH
2026-08-10 Linux GHSA-m9pv-2424-h7vv
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.0 HIGH

AC:H because exploitation requires both a non-default f2fs+blk-crypto configuration and deliberate memory-pressure timing; PR:L for required local user access; full C/I/A from kernel UAF primitive.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
6.5 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:H
Red Hat
7.0 MEDIUM
qualitative

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 14, 2026 - 02:30 vuln.today
CVSS changed
Aug 13, 2026 - 23:37 NVD
7.8 (HIGH)
Patch available
Aug 10, 2026 - 14:18 EUVD
CVE Published
Aug 10, 2026 - 11:59 cve.org
UNKNOWN (no severity yet)
CVE Published
Aug 10, 2026 - 11:59 cve.org
HIGH 7.8

DescriptionCVE.org

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

fscrypt: Avoid dynamic allocation in fscrypt_get_devices()

When a blk_crypto_key starts being used or is evicted, fs/crypto/ calls fscrypt_get_devices() to get the filesystem's list of block devices, then iterates over them and calls blk_crypto_config_supported(), blk_crypto_start_using_key(), or blk_crypto_evict_key() on each one.

Currently, the block device pointers are placed in a dynamically allocated array. This dynamic allocation is problematic because:

  • It can fail, especially at the fscrypt_destroy_inline_crypt_key() call

site when it's invoked for inode eviction under direct reclaim.

  • fscrypt_destroy_inline_crypt_key() doesn't handle the failure. It

just zeroizes and frees the blk_crypto_key without calling blk_crypto_evict_key(). That causes a use-after-free.

For now, let's fix this in the straightforward and easily-backportable way by switching to an on-stack array. Currently the fscrypt multi-device functionality is used only by f2fs, which has a hardcoded limit of 8 block devices. An on-stack array works fine for that.

(Of course, this solution won't scale up to large number of block devices. For that we'd need a different solution, like moving the block device iteration into the filesystem. Or in the case of btrfs, which will only support blk-crypto-fallback, we should make it just call blk-crypto-fallback directly, so the block devices won't be needed.)

AnalysisAI

Use-after-free in the Linux kernel fscrypt subsystem allows a local low-privileged user to potentially escalate privileges or corrupt kernel memory on systems running f2fs with inline encryption. The flaw surfaces in fscrypt_destroy_inline_crypt_key() during inode eviction under direct memory reclaim: when the dynamic heap allocation inside fscrypt_get_devices() fails under memory pressure, the function skips the mandatory blk_crypto_evict_key() call and immediately frees the blk_crypto_key structure while block device drivers still hold references to it. No public exploit code exists and EPSS is 0.18% (7th percentile), but the underlying kernel use-after-free primitive carries serious privilege-escalation potential on affected configurations; patches are available across multiple stable branches.

Technical ContextAI

The vulnerability resides in the Linux kernel's fscrypt inline encryption key lifecycle, specifically in fscrypt_destroy_inline_crypt_key(). When an encrypted inode is evicted, this function calls fscrypt_get_devices() to build a heap-allocated array of the filesystem's block device pointers, then iterates over them calling blk_crypto_evict_key() on each. Under direct memory reclaim - a condition the kernel enters when physical memory is exhausted - the kmalloc backing that array can fail. The error path did not handle this failure: it proceeded to zeroize and kfree() the blk_crypto_key without ever calling blk_crypto_evict_key(), leaving stale pointers in block device driver state. This is a use-after-free (CWE-416, inferred - NVD has not formally assigned a CWE). The bug is scoped to the fscrypt multi-device code path used exclusively by f2fs, which hard-limits device count to 8; the fix replaces the heap array with an on-stack array of 8 entries, eliminating the failing allocation. Affected commits begin at 22e9947a4b2ba255888541bd0111cf00b9b16586. CPE: cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

RemediationAI

Upgrade to a patched stable kernel: 6.6.148, 6.12.101, 6.18.42, 7.1.6, or 7.2-rc5, depending on the distribution's active stable branch. Upstream fix commits are available at https://git.kernel.org/stable/c/4462ac3d90e897dda52ce4b6af2d526ddae835a8, https://git.kernel.org/stable/c/97a688563be71ec6fefc071aff69a66c69dbe244, https://git.kernel.org/stable/c/81ea8e8221853950c47dac7164f27c63a96f8f86, https://git.kernel.org/stable/c/bc2d630296e0e049210ec05ff08459a6893ae749, and https://git.kernel.org/stable/c/6fe4e4b8259e1330945b5f3c9476e08473b8e0e8. If immediate kernel upgrade is not feasible, a targeted compensating control is to disable fscrypt inline encryption (blk-crypto offload) on f2fs volumes and fall back to software-layer fscrypt encryption, which avoids the blk_crypto_key lifecycle path entirely; note this trades hardware encryption acceleration for software-only performance. Systems not using f2fs or not using fscrypt inline encryption require no action.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

EUVD-2026-55532 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy