Read the docs
TI-2026-33776 Aliases CVE-2026-46052GHSA-vjcv-x2xf-6m7h

ceph: only d_add() negative dentries when they are unhashed

Priority LOW 39CWE-835Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · High
Fix status
Partial Red Hat: 4 without a fix

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-835.

Summary

In the Linux kernel, the following vulnerability has been resolved: ceph: only d_add() negative dentries when they are unhashed Ceph can call d_add(dentry, NULL) on a negative dentry that is already present in the primary dcache hash. In the current VFS that is not safe. d_add() goes through __d_add() to __d_rehash(), which unconditionally reinserts dentry->d_hash into the hlist_bl bucket. If the dentry is already hashed, reinserting the same node can corrupt the bucket, including creating a self-loop. Once that happens, __d_lookup() can spin forever in the hlist_bl walk, typically looping only on the d_name.hash mismatch check and eventually triggering RCU stall reports like this one: rcu: INFO: rcu_sched self-detected stall on CPU rcu: 87-....: (2100 ticks this GP) idle=3a4c/1/0x4000000000000000 softirq=25003319/25003319 fqs=829 rcu: (t=2101 jiffies g=79058445 q=698988 ncpus=192) CPU: 87 UID: 2952868916 PID: 3933303 Comm: php-cgi8.3 Not tainted 6.18.17-i1-amd #950 NONE Hardware name: Dell Inc. PowerEdge R7615/0G9DHV, BIOS 1.6.6 09/22/2023 RIP: 0010:__d_lookup+0x46/0xb0 Code: c1 e8 07 48 8d 04 c2 48 8b 00 49 89 fc 49 89 f5 48 89 c3 48 83 e3 fe 48 83 f8 01 77 0f eb 2d 0f 1f 44 00 00 48 8b 1b 48 85 db <74> 20 39 6b 18 75 f3 48 8d 7b 78 e8 ba 85 d0 00 4c 39 63 10 74 1f RSP: 0018:ff745a70c8253898 EFLAGS: 00000282 RAX: ff26e470054cb208 RBX: ff26e470054cb208 RCX: 000000006e958966 RDX: ff26e48267340000 RSI: ff745a70c82539b0 RDI: ff26e458f74655c0 RBP: 000000006e958966 R08: 0000000000000180 R09: 9cd08d909b919a89 R10: ff26e458f74655c0 R11: 0000000000000000 R12: ff26e458f74655c0 R13: ff745a70c82539b0 R14: d0d0d0d0d0d0d0d0 R15: 2f2f2f2f2f2f2f2f FS: 00007f5770896980(0000) GS:ff26e482c5d88000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f5764de50c0 CR3: 000000a72abb5001 CR4: 0000000000771ef0 PKRU: 55555554 Call Trace: <TASK> lookup_fast+0x9f/0x100 walk_component+0x1f/0x150 link_path_walk+0x20e/0x3d0 path_lookupat+0x68/0x180 filename_lookup+0xdc/0x1e0 vfs_statx+0x6c/0x140 vfs_fstatat+0x67/0xa0 __do_sys_newfstatat+0x24/0x60 do_syscall_64+0x6a/0x230 entry_SYSCALL_64_after_hwframe+0x76/0x7e This is reachable with reused cached negative dentries. A Ceph lookup or atomic_open can be handed a negative dentry that is already hashed, and fs/ceph/dir.c then hits one of two paths that incorrectly assume "negative" also means "unhashed": - ceph_finish_lookup(): MDS reply is -ENOENT with no trace -> d_add(dentry, NULL) - ceph_lookup(): local ENOENT fast path for a complete directory with shared caps -> d_add(dentry, NULL) Both paths can therefore re-add an already-hashed negative dentry. Ceph already uses the correct pattern elsewhere: ceph_fill_trace() only calls d_add(dn, NULL) for a negative null-dentry reply when d_unhashed(dn) is true. Fix both fs/ceph/dir.c sites the same way: only call d_add() for a negative dentry when it is actually unhashed. If the negative dentry is already hashed, leave it in place and reuse it as-is. This preserves the existing behavior for unhashed dentries while avoiding d_hash list corruption for reused hashed negatives.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00501 43rd percentileScored 2026-11-07
Fix Partial Linux (Linux): 5.10.259, 5.15.210, 6.1.176 +5Red Hat: 4 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
LinuxLinux2.6.34 and later5.10.259, 5.15.210, 6.1.176, 6.6.140, 6.12.86, 6.18.27, 7.0.4, 7.1Patch availableCNA
  • Linux VendorLinux Affected 2.6.34 and later Fixed in 5.10.259, 5.15.210, 6.1.176, 6.6.140, 6.12.86, 6.18.27, 7.0.4, 7.1 Patch available CNA

CPE configurations NVD · 8

CPEVersionsRoleVendor
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*2.6.34.1 to before 6.6.140; 6.7 to before 6.12.86; 6.13 to before 6.18.27; 6.19 to before 7.0.4VulnerableLinux
cpe:2.3:o:linux:linux_kernel:2.6.34:-:*:*:*:*:*:*2.6.34VulnerableLinux
cpe:2.3:o:linux:linux_kernel:2.6.34:rc2:*:*:*:*:*:*2.6.34 rc2VulnerableLinux
cpe:2.3:o:linux:linux_kernel:2.6.34:rc3:*:*:*:*:*:*2.6.34 rc3VulnerableLinux
cpe:2.3:o:linux:linux_kernel:2.6.34:rc4:*:*:*:*:*:*2.6.34 rc4VulnerableLinux
cpe:2.3:o:linux:linux_kernel:2.6.34:rc5:*:*:*:*:*:*2.6.34 rc5VulnerableLinux
cpe:2.3:o:linux:linux_kernel:2.6.34:rc6:*:*:*:*:*:*2.6.34 rc6VulnerableLinux
cpe:2.3:o:linux:linux_kernel:2.6.34:rc7:*:*:*:*:*:*2.6.34 rc7VulnerableLinux
  • cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* Versions 2.6.34.1 to before 6.6.140; 6.7 to before 6.12.86; 6.13 to before 6.18.27; 6.19 to before 7.0.4 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:2.6.34:-:*:*:*:*:*:* Versions 2.6.34 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:2.6.34:rc2:*:*:*:*:*:* Versions 2.6.34 rc2 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:2.6.34:rc3:*:*:*:*:*:* Versions 2.6.34 rc3 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:2.6.34:rc4:*:*:*:*:*:* Versions 2.6.34 rc4 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:2.6.34:rc5:*:*:*:*:*:* Versions 2.6.34 rc5 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:2.6.34:rc6:*:*:*:*:*:* Versions 2.6.34 rc6 Vulnerable ·Linux
  • cpe:2.3:o:linux:linux_kernel:2.6.34:rc7:*:*:*:*:*:* Versions 2.6.34 rc7 Vulnerable ·Linux

Remediation

  • Fix · CNA Linux (Linux) Fixed in 5.10.259, 5.15.210, 6.1.176, 6.6.140, 6.12.86, 6.18.27, 7.0.4, 7.1

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Red Hat Enterprise Linux 10AffectedNo fix yet
Red Hat Enterprise Linux 7AffectedNo fix yet
Red Hat Enterprise Linux 8AffectedNo fix yet
Red Hat Enterprise Linux 9AffectedNo fix yet
Not affected: 1 product
  • Red Hat Enterprise Linux 6

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-46052
  2. 2026-10-03 Alias added: GHSA-vjcv-x2xf-6m7h
  3. 2026-10-14 EPSS moved to the below the 50th percentile
  4. 2026-10-16 CISA SSVC decision points changed
  5. 2026-10-19 Weakness changed · CISA ADP

References

  • TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
  • TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
  • TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
  • TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
  • TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
  • TI-2021-05514 Heap Out-Of-Bounds Write in Netfilter IP6T_SO_SET_REPLACE KEVCVSS 3.1HIGH 8.3
See all 15278 →

Sources