PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-43071 Linux CVE debrief

A critical out-of-bounds (OOB) read vulnerability exists in the Linux kernel's dentry cache (dcache) subsystem, triggered when a user sets the kernel boot parameter `dhash_entries=1`. This configuration causes the dentry hash table to be allocated with only a single bucket. The `d_hash_shift` value is then calculated as 32 by `dcache_init()`. During dentry lookup operations in `__d_lookup()`, the hash index computation `(u32)hashlen >> d_hash_shift` performs a right shift by 32 bits on a 32-bit unsigned integer. Per the C standard, shifting by an amount equal to or greater than the operand's bit width is undefined behavior; in practice, this results in the original `hashlen` value being used as the bucket index, causing access to unallocated memory beyond the single-bucket hash table. The OOB read manifests as a kernel page fault during early boot when debugfs or other subsystems attempt to create directories, as shown in the call trace through `debugfs_create_dir` → `simple_start_creating` → `start_dirop` → `lookup_one_qstr_excl` → `lookup_dcache` → `d_lookup.cold` → `__d_lookup`. The fix enforces a minimum of two buckets for `dentry_hashtable`, ensuring `d_hash_shift` never reaches 32 and remains within valid shift bounds for a `u32` type. This vulnerability is remotely exploitable in network-facing kernel contexts where attackers may influence dentry operations, with high impact to confidentiality and availability.

Vendor
Linux
Product
Unknown
CVSS
CRITICAL 9.1
CISA KEV
Not listed in stored evidence
Original CVE published
2026-05-05
Original CVE updated
2026-07-29
Advisory published
2026-05-05
Advisory updated
2026-07-29

Who should care

Linux kernel maintainers, system administrators, cloud infrastructure operators, embedded device manufacturers, and security teams responsible for kernel hardening and boot-time security

Technical summary

The Linux kernel's dcache_init() function computes d_hash_shift based on the number of dentry_hashtable buckets, which is derived from the dhash_entries boot parameter. When dhash_entries=1, only one bucket is allocated and d_hash_shift becomes 32. In __d_lookup(), the bucket index is computed as (u32)hashlen >> d_hash_shift. A right shift of a 32-bit unsigned integer by 32 bits is undefined behavior in C; on affected compilers and architectures, this evaluates to the unshifted hashlen value, producing an index far beyond the allocated single bucket. The subsequent hlist_bl_for_each_entry_rcu() iteration dereferences h->first on this invalid bucket pointer, causing a page fault and kernel Oops. The fix limits the minimum bucket count to two, ensuring d_hash_shift is at most 31 and the shift operation remains well-defined.

Defensive priority

critical

Recommended defensive actions

  • Apply the appropriate stable kernel patch from the Linux kernel stable tree to enforce a minimum of two dentry_hashtable buckets
  • Audit boot parameters across all Linux systems to identify any use of dhash_entries=1 and remove or modify such configurations until patched
  • Prioritize patching for systems with network-exposed kernel interfaces or untrusted user namespaces where dentry operations may be attacker-influenced
  • Monitor for kernel page faults in __d_lookup or d_lookup.cold as potential indicators of exploitation attempts or misconfigurations
  • Review kernel crash dumps and early-boot logs for Oops traces involving dentry_hashtable access on systems with non-default dhash_entries values

Evidence notes

The vulnerability description and patch references confirm the root cause: undefined behavior from a 32-bit right shift on a u32 when dhash_entries=1 causes d_hash_shift=32, leading to OOB memory access in dentry_hashtable during __d_lookup(). The call trace demonstrates exploitation path through debugfs directory creation at boot. Multiple stable kernel patches are available across affected branches.

Sources and references

Verified primary and authoritative sources

  • CVE-2026-43071 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-43071

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-43071 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-43071

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/277cedabb0ab86baae83fa58218be13c6d3e5526

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/426ef05e82ee52c8d0e95fc0808b7383d8352d73

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/5718df131ab78897a9dd1f2e71c3ba732d4392af

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/755b40903eff563768d4d96fd4ef51ec48adde3b

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/ddd57ebce245f9c7e2f6902a6c087d6186d2385d

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/f08fe8891c3eeb63b73f9f1f6d97aa629c821579

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.