p PatchFirst

CVE-2026-98986

CVE-2026-98986 · namespace: remove the fsnotify marks of a mount namespace in process context

This page contains facts from public vulnerability sources. Check the original advisory before updating.

In the Linux kernel, the following vulnerability has been resolved: namespace: remove the fsnotify marks of a mount namespace in process context mnt_ns_release() drops the last passive reference of a mount namespace and removes its fanotify marks via fsnotify_mntns_delete(). That takes the mutex of every group with a mark on the namespace and the spinlock of the connector. Fine from process context. But mnt_ns_tree_remove() hands the reference the namespace was allocated with to call_rcu() and so the marks are removed from the RCU softirq: BUG: sleeping function called from invalid context at kernel/locking/mutex.c:623 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 0, name: swapper/3 __mutex_lock+0x113/0x24b0 fsnotify_destroy_marks+0x11b/0x3d0 mnt_ns_release_rcu+0x57/0xa0 rcu_core+0x6b6/0x1e40 and lockdep complains about the connector lock being taken from softirq context. A fanotify group with a FAN_MARK_MNTNS mark on the mount namespace of another task is all that's needed. Root in a user namespace can do that for a mount namespace it owns. The task exits and the namespace is freed with the mark still on it. Remove the marks in free_mnt_ns() before the namespace is handed to RCU. That runs in process context once the last active reference is gone. A mark is added through a file descriptor to the namespace which holds an active reference so no mark can show up after that.

Fix available

Published
Updated

Stack: system

Affected products and versions

  • linux

    Versions
    • ≥ bf630c40164162ba1d3933c2f5e3397d083e0948, < 888363d74c3b5d32e2accf217add70f8b38e0e2b: Affected (git)
    • ≥ bf630c40164162ba1d3933c2f5e3397d083e0948, < 9e820a6becdd955a04adbedfd767253a47eedd9e: Affected (git)
    • ≥ bf630c40164162ba1d3933c2f5e3397d083e0948, < 1a116222acdcc1bc1a8350727ae6f28907d44594: Affected (git)

    Update to 888363d74c3b5d32e2accf217add70f8b38e0e2b

  • linux

    Versions
    • 6.15: Affected
    • ≥ 0, < 6.15: Not affected (semver)
    • ≥ 6.18.57, ≤ 6.18.*: Not affected (semver)
    • ≥ 7.2.11, ≤ 7.2.*: Not affected (semver)
    • ≥ 7.3: Not affected (original_commit_for_fix)

    No fix published

  • linux Debian:14

    Versions
    • 6.12.100-1
    • 6.12.101-1
    • 6.12.105-1
    • 6.12.107-1
    • 6.12.111-1
    • 6.12.113-1
    • 6.12.38-1
    • 6.12.41-1
    • 6.12.43-1
    • 6.12.43-1~bpo12+1
    • 6.12.48-1
    • 6.12.57-1
    • 6.12.57-1~bpo12+1
    • 6.12.63-1
    • 6.12.63-1~bpo12+1
    • 6.12.69-1
    • 6.12.69-1~bpo12+1
    • 6.12.73-1
    • 6.12.73-1~bpo12+1
    • 6.12.74-1
    • 6.12.74-2
    • 6.12.74-2~bpo12+1
    • 6.12.85-1
    • 6.12.85-1~bpo12+1
    • 6.12.86-1
    • 6.12.86-1~bpo12+1
    • 6.12.88-1
    • 6.12.88-1~bpo12+1
    • 6.12.90-1
    • 6.12.90-1~bpo12+1
    • 6.12.90-2
    • 6.12.90-2~bpo12+1
    • 6.12.94-1
    • 6.12.94-1~bpo12+1
    • 6.12.95-1
    • 6.12.95-1~bpo12+1
    • 6.12.96-1
    • 6.13.10-1~exp1
    • 6.13.11-1~exp1
    • 6.13.2-1~exp1
    • 6.13.3-1~exp1
    • 6.13.4-1~exp1
    • 6.13.5-1~exp1
    • 6.13.6-1~exp1
    • 6.13.7-1~exp1
    • 6.13.8-1~exp1
    • 6.13.9-1~exp1
    • 6.13~rc6-1~exp1
    • 6.13~rc7-1~exp1
    • 6.14.3-1~exp1
    • 6.14.5-1~exp1
    • 6.14.6-1~exp1
    • 6.15-1~exp1
    • 6.15.1-1~exp1
    • 6.15.2-1~exp1
    • 6.15.3-1~exp1
    • 6.15.4-1~exp1
    • 6.15.5-1~exp1
    • 6.15.6-1~exp1
    • 6.15~rc7-1~exp1
    • 6.16-1~exp1
    • 6.16.1-1~exp1
    • 6.16.10-1
    • 6.16.11-1
    • 6.16.12-1
    • 6.16.12-1~bpo13+1
    • 6.16.12-2
    • 6.16.3-1
    • 6.16.3-1~bpo13+1
    • 6.16.5-1
    • 6.16.6-1
    • 6.16.7-1
    • 6.16.8-1
    • 6.16.9-1
    • 6.16~rc7-1~exp1
    • 6.17.10-1
    • 6.17.11-1
    • 6.17.12-1
    • 6.17.13-1
    • 6.17.13-1~bpo13+1
    • 6.17.2-1~exp1
    • 6.17.5-1~exp1
    • 6.17.6-1
    • 6.17.7-1
    • 6.17.7-2
    • 6.17.8-1
    • 6.17.8-1~bpo13+1
    • 6.17.9-1
    • 6.18.1-1~exp1
    • 6.18.10-1
    • 6.18.12-1
    • 6.18.12-1~bpo13+1
    • 6.18.13-1
    • 6.18.14-1
    • 6.18.15-1
    • 6.18.15-1~bpo13+1
    • 6.18.2-1~exp1
    • 6.18.3-1
    • 6.18.5-1
    • 6.18.5-1~bpo13+1
    • 6.18.8-1
    • 6.18.9-1
    • 6.18.9-1~bpo13+1
    • 6.18~rc4-1~exp1
    • 6.18~rc4-1~exp2
    • 6.18~rc5-1~exp1
    • 6.18~rc6-1~exp1
    • 6.18~rc7-1~exp1
    • 6.19-1~exp1
    • 6.19.10-1
    • 6.19.10-1~bpo13+1
    • 6.19.11-1
    • 6.19.11-1~bpo13+1
    • 6.19.12-1
    • 6.19.13-1
    • 6.19.13-1~bpo13+1
    • 6.19.14-1
    • 6.19.14-1~bpo13+1
    • 6.19.2-1~exp1
    • 6.19.3-1~exp1
    • 6.19.4-1~exp1
    • 6.19.5-1~exp1
    • 6.19.6-1
    • 6.19.6-2
    • 6.19.6-2~bpo13+1
    • 6.19.8-1
    • 6.19.8-1~bpo13+1
    • 6.19~rc4-1~exp1
    • 6.19~rc5-1~exp1
    • 6.19~rc6-1~exp1
    • 6.19~rc7-1~exp1
    • 6.19~rc8-1~exp1
    • 7.0-1~exp1
    • 7.0.1-1~exp1
    • 7.0.10-1
    • 7.0.10-1~bpo13+1
    • 7.0.12-1
    • 7.0.12-2
    • 7.0.12-2~bpo13+1
    • 7.0.13-1
    • 7.0.13-1~bpo13+1
    • 7.0.14-1
    • 7.0.3-1
    • 7.0.4-1
    • 7.0.4-1~bpo13+1
    • 7.0.7-1
    • 7.0.7-1~bpo13+1
    • 7.0.9-1
    • 7.0.9-1~bpo13+1
    • 7.1.1-1~exp1
    • 7.1.10-1
    • 7.1.12-1
    • 7.1.13-1
    • 7.1.13-1~bpo13+1
    • 7.1.2-1~exp1
    • 7.1.3-1
    • 7.1.3-1+sunvdc
    • 7.1.3-1~bpo13+1
    • 7.1.4-1
    • 7.1.5-1
    • 7.1.6-1
    • 7.1.7-1
    • 7.1.7-1~bpo13+1
    • 7.1.8-1
    • 7.1.8-1~bpo13+1
    • 7.1.8-2
    • 7.1.9-1
    • 7.1.9-1+sparc64
    • 7.1~rc2-1~exp1
    • 7.1~rc3-1~exp1
    • 7.1~rc4-1~exp1
    • 7.1~rc4-1~exp2
    • 7.1~rc5-1~exp1
    • 7.1~rc7-1~exp1
    • 7.2.10-1
    • 7.2.2-1~exp1
    • 7.2.3-1~exp1
    • 7.2.6-1
    • 7.2.6-1~bpo13+1
    • 7.2.7-1
    • 7.2.8-1
    • 7.2.9-1
    • 7.2.9-1~bpo13+1
    • 7.2~rc3-1~exp1
    • 7.2~rc5-1~exp1
    • 7.2~rc7-1~exp1
    Affected ranges
    • ECOSYSTEM: < 7.2.11-1

    Update to 7.2.11-1

Original sources

Check your server →