p PatchFirst

PatchFirst · Latest vulnerabilities

Operating systems stack vulnerabilities · Page 9

Vulnerabilities published for Operating systems in the last 30 days: 6778. Listed in the KEV catalogue: 0.

Filter vulnerabilities
Operating systems

Vulnerabilities: 158927

  1. CVE-2026-98993

    High · CVSS 7.8EPSS 0.18%Fix available

    namespace: don't inherit MNT_UMOUNT in clone_mnt()

    In the Linux kernel, the following vulnerability has been resolved: namespace: don't inherit MNT_UMOUNT in clone_mnt() MNT_UMOUNT gets raised on a mount that umount_tree() or umount_one() has taken out of its namespace. It's never cleared. __detach_mounts() unhooks a mount that carries it instead of unmounting it. disconnect_mount() lets an unmounted child stay attached only if its parent carries it. propagate_umount() takes it as the sign that a mount is going to be unmounted when it decides what else can be unmounted, where a chain of locked mounts ends and where a for reparenting an overmount. clone_mnt() copies the flags of the source

    • Update to 4.1
    • Update to 7.2.11-1
    Published Updated
  2. CVE-2026-98992

    Not ratedEPSS 0.17%Fix available

    namespace: don't copy an unmounted mount tree

    In the Linux kernel, the following vulnerability has been resolved: namespace: don't copy an unmounted mount tree may_copy_tree() accepts a mount whose root is an nsfs or pidfs file before it checks whether that mount is mounted. This exception exists for nsfs and pidfs mounts. They are part of no mount namespace so neither check_mnt() nor is_mounted() would let them through and bind-mounting a nsfsfd or a pidfd wouldn't work. Problem is that exception also admits a bind mount of such a file when it was lazily unmounted and is only kept alive by a file descriptor: mount --bind /proc/self/ns/net /tmp/x exec 3< /tmp/x umount -l /tmp/x

    • Update to 6.12.113-1
    • Update to 7.2.11-1
    Published Updated
  3. CVE-2026-98991

    High · CVSS 7.8EPSS 0.16%Fix available

    namespace: queue a mount only once for mount notifications

    In the Linux kernel, the following vulnerability has been resolved: namespace: queue a mount only once for mount notifications mnt_notify_add() puts a mount on notify_list. It doesn't check whether the mount is on the list already. That's fine as long as every mount is queued at most once per namespace_sem hold. It isn't. propagate_umount() moves a surviving overmount off a stack of mounts that are going away and queues it as moved. shrink_submounts() and mark_mounts_for_expiry() call umount_tree() for several mounts under a single namespace_sem hold. So the second umount_tree() can take down exactly the mount the first one reparented, rep

    • Update to 7.2.11-1
    Published Updated
  4. CVE-2026-98990

    Not ratedEPSS 0.18%Fix available

    namespace: check a submount for references right before unmounting it

    In the Linux kernel, the following vulnerability has been resolved: namespace: check a submount for references right before unmounting it shrink_submounts() and mark_mounts_for_expiry() first collect all the mounts they are allowed to unmount and then unmount them. Whether a mount is busy is decided by propagate_mount_busy() on the tree. But unmounting the first mount changes the tree that the second one propagates into. propagate_umount() moves a surviving overmount off a copy it unmounts and mounts it where the copy was mounted. If that's where the propagated copy of the second victim is looked up the overmount becomes a candidate of the

    • Update to 4.10
    • Update to 4.11
    • Update to 4.2
    • Update to 4.5
    • Update to 6.12.113-1
    • Update to 7.2.11-1
    Published Updated
  5. CVE-2026-98989

    Not ratedEPSS 0.17%Fix available

    namespace: check a recursive bind mount for mount namespace loops

    In the Linux kernel, the following vulnerability has been resolved: namespace: check a recursive bind mount for mount namespace loops do_loopback() refuses to bind mount the file of a mount namespace that is as old as the caller's or older because a mount namespace that holds a mount of its own file, or of an ancestor's, would cause a cycle. But it only checks the dentry the bind mount starts from. With MS_REC everything below it is copied and do_loopback() passes CL_COPY_MNT_NS_FILE so mount namespace files below the source are copied. That's fine for a source in the caller's own mount namespace. Every mount namespace file in there passed

    • Update to 7.2.11-1
    Published Updated
  6. CVE-2026-98988

    High · CVSS 8.8EPSS 0.16%Fix available

    namespace: keep covered mounts covered in OPEN_TREE_NAMESPACE

    In the Linux kernel, the following vulnerability has been resolved: namespace: keep covered mounts covered in OPEN_TREE_NAMESPACE open_tree(OPEN_TREE_NAMESPACE) creates a new mount namespace from a copy of the tree at the given path. The caller needs to be privileged over its current user namespace because the new mount namespace will be owned by it. It doesn't need to be privileged over the mount namespace the tree is copied from. An unprivileged user just needs to create a user namespace first. The copy follows the rules of a detached bind mount. Without AT_RECURSIVE only the mount itself is cloned and its children are left out. With AT_

    • Update to 7.2.11-1
    Published Updated
  7. CVE-2026-98987

    Not ratedEPSS 0.17%Fix available

    namespace: look at the topmost mount for a mount namespace file

    In the Linux kernel, the following vulnerability has been resolved: namespace: look at the topmost mount for a mount namespace file attach_recursive_mnt() preallocates a mountpoint for the root of the topmost mount of the source so that a mount that already sits at the destination can be put on top of the source or on top of one of its propagated copies. The copies are made without CL_COPY_MNT_NS_FILE so their chain of overmounts is shorter than the source's. It ends below the first bind mount of a mount namespace file. So while the loop walks up the chain of the source it remembers the mountpoint of that mount in "shorter" and the existin

    • Update to 7.2.11-1
    Published Updated
  8. CVE-2026-98986

    Not ratedEPSS 0.17%Fix available

    namespace: remove the fsnotify marks of a mount namespace in process context

    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,

    • Update to 7.2.11-1
    Published Updated
  9. CVE-2026-98985

    Not ratedEPSS 0.17%Fix available

    namespace: check the mounts before reading their parents in pivot_root()

    In the Linux kernel, the following vulnerability has been resolved: namespace: check the mounts before reading their parents in pivot_root() path_pivot_root() reads the parents of new_root and of the caller's root and checks whether they are shared before it checks that either mount is in the caller's mount namespace. Only namespace_sem is held. That's fine for a mount that is in the caller's mount namespace. But new_root can be a file descriptor to a mount that has been unmounted and that only the file descriptor keeps alive. If that mount stayed attached to its parent when it was unmounted nothing pins the parent for it. The final mntput

    • Update to 4.1
    • Update to 7.2.11-1
    Published Updated
  10. CVE-2026-98984

    Not ratedEPSS 0.17%Fix available

    dcache: don't put a mountpoint on a dentry that's being removed

    In the Linux kernel, the following vulnerability has been resolved: dcache: don't put a mountpoint on a dentry that's being removed rmdir(), unlink() and rename() call dont_mount() on the victim and then detach_mounts() with the victim's inode locked. do_lock_mount() takes the inode lock of the mountpoint and checks cant_mount() so a mount can't show up after detach_mounts(). But attach_recursive_mnt() makes a second mountpoint for the root of the source mount so that the mounts already located at the destination can be put on top of it. No inode is locked for that one and d_set_mounted() only refuses a dentry that is unlinked. Between det

    • Update to 4.10
    • Update to 4.11
    • Update to 4.2
    • Update to 4.5
    • Update to 6.12.113-1
    • Update to 7.2.11-1
    Published Updated
  11. CVE-2026-98983

    Not ratedEPSS 0.16%Fix available

    unshare: don't drop active namespace references that were never taken

    In the Linux kernel, the following vulnerability has been resolved: unshare: don't drop active namespace references that were never taken Active references on the namespaces of an nsproxy are taken when the nsproxy is installed into a task in switch_task_namespaces() and copy_namespaces() and dropped again by put_nsproxy() through deactivate_nsproxy(). But ksys_unshare() calls put_nsproxy() on an nsproxy that was never installed when set_cred_ucounts() fails. The new namespaces of that nsproxy go from zero to minus one and the namespaces shared with the caller lose a reference that belongs to the nsproxy the caller keeps using: WARNING:

    • Update to 5.16
    • Update to 6.13
    • Update to 6.19
    • Update to 6.2
    • Update to 6.7
    • Update to 7.1
    • Update to 7.2.11-1
    Published Updated
  12. CVE-2026-98982

    High · CVSS 7.8EPSS 0.16%Fix available

    namespace: don't let a pseudo dentry become the root of a mount

    In the Linux kernel, the following vulnerability has been resolved: namespace: don't let a pseudo dentry become the root of a mount d_alloc_pseudo() hands out dentries for pipes, sockets and other files that are never anyone's child or parent. They carry DCACHE_NORCU and dentry_free() frees them right away because no lockless path walk can ever reach them. That holds as long as such a dentry isn't the root of a mount. But bind mounting /proc/self/fd/<fd> of such a file does exactly that. Most callers of alloc_file_pseudo() put their files on kernel-internal mounts and may_copy_tree() refuses those. bpf_token_create() doesn't. It places the

    • Update to 6.12.113-1
    • Update to 7.2.11-1
    Published Updated
  13. CVE-2026-98981

    High · CVSS 8.8EPSS 0.16%Fix available

    namespace: unhash a dentry before detaching the mounts on it

    In the Linux kernel, the following vulnerability has been resolved: namespace: unhash a dentry before detaching the mounts on it unlink(), rmdir() and rename() remove the entry from the filesystem, call detach_mounts() on the entry with the inode locked and then call d_delete() once the inode is unlocked. The thing is that between detach_mounts() and d_delete() the dentry is still hashed and positive. But after detach_mounts() nothing covers the dentry anymore. A lookup that finds this dentry in the dcache can uncover what the mounts hid. That's a problem when unlinking files or directories that are mountpoints in other mount namespaces.

    • Update to 7.2.11-1
    Published Updated
  14. CVE-2026-98980

    High · CVSS 8.8EPSS 0.18%Fix available

    namei: don't reveal overmounted entries in refwalk

    In the Linux kernel, the following vulnerability has been resolved: namei: don't reveal overmounted entries in refwalk In rcuwalk the dentry is validated before it is accepted. step_into() step_into() rechecks d_seq and __follow_mount_rcu() rechecks mount_lock. An entry that gets unlinked in between causes the lookup to retry and miss. A refwalk doesn't do this. lookup_fast() takes a reference on the hashed dentry and simply accepts it. So an unlink that happens after the reference was taken isn't seen by refwalk. That's fine for a simple file. We just happened to open it before it was unlinked, no problem. For a mountpoint and specifical

    • Update to 6.12.113-1
    • Update to 7.2.11-1
    Published Updated
  15. CVE-2026-98979

    Not ratedEPSS 0.17%Fix available

    namespace: refuse an automount below a mount that is in no namespace

    In the Linux kernel, the following vulnerability has been resolved: namespace: refuse an automount below a mount that is in no namespace It's possible to add autmounts even when the parent mount isn't in the mount namespace of the caller. The only requirement we have is that the parent mount namespace must not be NULL, i.e., unmounted. Problem is that clone_private_mount() has MNT_NS_INTERNAL which makes that trivially true. So that passes the test and attach_recursive_mnt() accepts that as a mount point and funny enough, count_mounts() dereferences MNT_NS_INTERNAL. The problem is it is an error pointer... So we can reach this in userspac

    • Update to 6.12.113-1
    • Update to 7.2.11-1
    Published Updated
  16. CVE-2026-98978

    High · CVSS 8.4EPSS 0.17%Fix available

    namespace: never expire a locked mount

    In the Linux kernel, the following vulnerability has been resolved: namespace: never expire a locked mount Locked mounts are special. They protect the underlying files and directories from being revealed. do_umount() refuses to unmount locked mounts but shrink_submounts() doesn't. A shrinkable mount can become locked once the owner of a user namespace puts it beneath a locked mount with MOVE_MOUNT_BENEATH. The locked property now moves to the mount at the bottom making it possible to unmount the top mount. So umount() of an unlocked ancestor now expires the bottom mount first and the covered directory is revealed: move_mount(c -> x/hid

    • Update to 7.2.11-1
    Published Updated
  17. CVE-2026-98977

    Not ratedEPSS 0.18%Fix available

    namespace: handle mount locking for automounts correctly

    In the Linux kernel, the following vulnerability has been resolved: namespace: handle mount locking for automounts correctly If mounts are propagated across user namespaces, attach_recursive_mnt() locks every copy of the source mount to protect overmounts from vanishing and revealing the underlying files or directories. The user namespace is taken from the caller's mount namespaces since this is where the mounts end up. Except, that's not always true. Automounts may legitimately get popped in by tasks located in a different mount and user namespace during path lookup. Then check doesn't make sense at that point. The copy in the namespace

    • Update to 3.9
    • Update to 7.2.11-1
    Published Updated
  18. CVE-2026-98976

    High · CVSS 7.8EPSS 0.14%Fix available

    namespace: keep the lock on a mount that a propagated copy is moved beneath

    In the Linux kernel, the following vulnerability has been resolved: namespace: keep the lock on a mount that a propagated copy is moved beneath attach_recursive_mnt() transfers MNT_LOCKED from the top mount to the mount that is moved beneath it with MOVE_MOUNT_BENEATH. This allows the owner of a user namespace to replace its locked /proc or its root. The mount beneath takes on the job of covering the underlying mountpoint allowing the top mount to be unmounted. Consider two mount namespaces: (H) The host H has a shared mount P with a secret in P/d (Z) Z is a user namespace made from M. Its copy of P receives propagation from the host'

    • Update to 7.2.11-1
    Published Updated
  19. CVE-2026-98975

    High · CVSS 7.8EPSS 0.16%Fix available

    xfs: stop exchanging reflink flags when exchanging mappings

    In the Linux kernel, the following vulnerability has been resolved: xfs: stop exchanging reflink flags when exchanging mappings When an exchange covers both files from offset 0 to i_disk_size, xmi_can_exchange_reflink_flags() assumes every mapping moved and hands the reflink flag over to the other file. That assumption is wrong. A file can still own shared blocks past i_disk_size, e.g. after EXCHANGE_RANGE_TO_EOF sets a smaller size without unmapping anything. The flag is cleared anyway, and the next write to such a block happens in place instead of CoW, corrupting the other file that shares it. Commit a23eca88448e ("xfs: fix exchange-r

    • Update to 7.2.11-1
    Published Updated
  20. CVE-2026-98974

    High · CVSS 7.8EPSS 0.16%Fix available

    xfs: fix exchange-range-to-eof file size exchange

    In the Linux kernel, the following vulnerability has been resolved: xfs: fix exchange-range-to-eof file size exchange Norbert Szetei posted a patch containing an incomplete description of a bug in XFS_IOC_EXCHANGE_RANGE's TO_EOF flag. The bug tricks exchange-range into modifying a file so that it has shared blocks starting beyond EOF, which is never allowed because files never have written data beyond EOF, and you can only share written data blocks. This is key to all the incorrect behavior that follows. Eventually I got from Norbert a description of what's going wrong: > Fair. Here it is with physical block numbers, 4k blocks. peer is t

    • Update to 7.2.11-1
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →