GHSA-rxfr-7h9v-g4vxHighCVSS 7.8

In the Linux kernel, the following vulnerability has been resolved: kernfs: fix xattr race...

Published
August 15, 2026
Last Modified
August 17, 2026

🔗 CVE IDs covered (1)

📋 Description

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

kernfs: fix xattr race condition with multiple superblocks

Multiple superblocks with different namespaces can share the same kernfs_node when kernfs_test_super() finds a matching root but different namespace. This means multiple inodes from different superblocks can reference the same kernfs_node->iattr->xattrs structure.

The VFS layer only holds per-inode locks during xattr operations, which is insufficient to serialize concurrent xattr modifications on the shared kernfs_node. This can lead to race conditions in simple_xattr_set() where the lookup->replace/remove sequence is not atomic with respect to operations from other superblocks.

Fix this by protecting xattr operations with the existing hashed kernfs_locks->open_file_mutex[] array, which is already used to protect per-node open file data. The hashed mutex array provides scalable per-node serialization (scaled by CPU count, up to 1024 locks on 32+ CPU systems) with zero memory overhead.

Changes:

  • Rename open_file_mutex[] to node_mutex[] to reflect dual purpose
  • Add kernfs_node_lock_ptr() and kernfs_node_lock() helpers
  • Protect simple_xattr_set() calls in kernfs_xattr_set() and kernfs_vfs_user_xattr_set() with the hashed mutex
  • Update file.c to use new helpers via compatibility wrappers
  • Update documentation to explain the extended lock usage

🔗 References (4)