KernelScan.io

HIGH Introduced in 2.6.26

ecryptfs DaemonQueue Race

CVE-2026-89609

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI6.9MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: ecryptfs: hold msg ctx list lock when cleaning daemon queue ecryptfs_exorcise_daemon() drops queued messages from a dying daemon without holding ecryptfs_msg_ctx_lists_mux, but ecryptfs_msg_ctx_alloc_to_free() requires that lock. Take the list lock while moving the queued contexts back to the free list to avoid racing with other global msg ctx list users.

02

Engine v0.6.0

Risk summary

A race condition in the eCryptfs messaging subsystem allows list corruption when a daemon is cleaned up without proper locking. Any local user with access to an eCryptfs mount can trigger file operations that race with daemon teardown, potentially leading to kernel memory corruption, privilege escalation, or denial of service via kernel panic.

Affectedfs/ecryptfs/messaging.c (ecryptfs)

Vulnerability analysis

When an eCryptfs daemon process dies, the kernel moves its queued message contexts back to the global free list. The original code performs this cleanup without holding the lock that protects that global list, so it can race with concurrent operations that allocate or free message contexts during normal encrypted file I/O. This unsynchronized list manipulation can corrupt the linked list, leading to use-after-free conditions and kernel memory corruption. The fix acquires the global list lock around the entire cleanup loop, ensuring the daemon's queued contexts are moved back to the free list atomically with respect to other list users. The vulnerable path is reachable locally by any user who can perform file operations on an existing eCryptfs mount, which requires the filesystem to have been set up by an administrator; the race window opens when the daemon process exits or is killed while I/O is in flight.

03

BranchIntroducedFixed inPatch commit
5.102.6.265.10.27064d8998e36cf
5.152.6.265.15.2214d50b8aea11a
6.12.6.266.1.188956541efd125
6.182.6.266.18.500d9636ecba34
7.22.6.267.2.44c02acbe0a26
mainline2.6.267.3-rc1779972513c2f
6.122.6.266.12.1097e48afafe7ab
6.62.6.266.6.157ec1627bcb5b5
cip/6.122.6.266.12.111-cip327e48afafe7ab