Import Source
https://github.com/microsoft/AzureLinuxVulnerabilityData/blob/main/osv/AZL-88953.json
JSON Data
https://api.osv.dev/v1/vulns/AZL-88953
Upstream
Published
2026-05-28T10:16:25Z
Modified
2026-08-28T17:48:10.017728092Z
Summary
CVE-2026-46106 affecting package kernel for versions less than 6.6.141.1-1
Details

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

eventfs: Hold eventfs_mutex and SRCU when remount walks events

Commit 340f0c7067a9 ("eventfs: Update all the eventfsinodes from the events descriptor") had eventfssetattrs() recurse through ei->children on remount. The walk only holds the rcureadlock() taken by tracefsapplyoptions() over tracefsinodes, which is wrong:

  • listforeachentry over ei->children races with the listdelrcu() in eventfsremoverec() -- LISTPOISON1 deref, same shape as d2603279c7d6.
  • eventfsinodes are freed via callsrcu(&eventfssrcu, ...). rcuread_lock() does not extend an SRCU grace period, so ti->private can be reclaimed under the walk.
  • The writes to ei->attr race with eventfssetattr(), which holds eventfs_mutex.

Reproducer:

while :; do mount -o remount,uid=$((RANDOM%1000)) /sys/kernel/tracing; done & while :; do echo "p:kp submitbio" > /sys/kernel/tracing/kprobeevents echo > /sys/kernel/tracing/kprobe_events done

Wrap the events portion of tracefsapplyoptions() in eventfsremountlock()/unlock() that take eventfsmutex and srcureadlock(&eventfssrcu). eventfssetattrs() doesn't sleep so the nested rcureadlock() is fine; lockdepassert_held() pins the contract.

Comment in tracefsdropinode() said "RCU cycle" -- it is SRCU.

References

Affected packages

Azure Linux:3 / kernel

Package

Name
kernel
Purl
pkg:rpm/azure-linux/kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.6.141.1-1

Database specific

source
"https://github.com/microsoft/AzureLinuxVulnerabilityData/blob/main/osv/AZL-88953.json"