← All Advisories

Linux kernel ext4 use-after-free in update_super_work races with unmount after sysfs unregistration

Last refreshed2026-09-30

Status: UPDATED  |  Advisory ID: CVE-2026-31446

Key Details

CVECVE-2026-31446
CVSS Score / Version7.8 (High) / CVSS v3.1
Updated2026-07-14
CVSS VectorCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CVSS Proseattack vector is local; attack complexity is low; privileges required is none; user interaction is required; scope is unchanged; confidentiality impact is high; integrity impact is high; availability impact is high.
Affected productsLinux Linux Kernel
Classified asCWE-416 (Use After Free)

Affected Products, Subsystems & Sectors

VendorProductAffected VersionsPatch Status
LinuxLinux Kernel
SubsystemsGeneral OT
SectorsAll Sectors

What to Know

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

ext4: fix use-after-free in update_super_work when racing with umount

Commit b98535d09179 ("ext4: fix bug_on in start_this_handle during umount

filesystem") moved ext4_unregister_sysfs() before flushing s_sb_upd_work

to prevent new error work from being queued via /proc/fs/ext4/xx/mb_groups

reads during unmount. However, this introduced a use-after-free because

update_super_work calls ext4_notify_error_sysfs() -> sysfs_notify() which

accesses the kobject's kernfs_node after it has been freed by kobject_del()

in ext4_unregister_sysfs():

update_super_work ext4_put_super

----------------- --------------

ext4_unregister_sysfs(sb)

kobject_del(&sbi->s_kobj)

__kobject_del()

sysfs_remove_dir()

kobj->sd = NULL

sysfs_put(sd)

kernfs_put() // RCU free

ext4_notify_error_sysfs(sbi)

sysfs_notify(&sbi->s_kobj)

kn = kobj->sd // stale pointer

kernfs_get(kn) // UAF on freed kernfs_node

ext4_journal_destroy()

flush_work(&sbi->s_sb_upd_work)

Instead of reordering the teardown sequence, fix this by making

ext4_notify_error_sysfs() detect that sysfs has already been torn down

by checking s_kobj.state_in_sysfs, and skipping the sysfs_notify() call

in that case. A dedicated mutex (s_error_notify_mutex) serializes

ext4_notify_error_sysfs() against kobject_del() in ext4_unregister_sysfs()

to prevent TOCTOU races where the kobject could be deleted between the

state_in_sysfs check and the sysfs_notify() call. (NVD)

What to Do

Monitor Linux's web page for any future patch releases.

References

SourceReference
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-31446
CVEhttps://www.cve.org/CVERecord?id=CVE-2026-31446