Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2026-64417

mm: shrinker: fix NULL pointer dereference in debugfs

Description

In the Linux kernel, the following vulnerability has been resolved: mm: shrinker: fix NULL pointer dereference in debugfs shrinker_debugfs_add() creates both "count" and "scan" debugfs files unconditionally. That assumes every shrinker implements both count_objects() and scan_objects(), which is not guaranteed. For example, the xen-backend shrinker sets count_objects() but leaves scan_objects() NULL, so writing to its scan file calls through a NULL function pointer and panics the kernel: BUG: kernel NULL pointer dereference, address: 0000000000000000 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. Call Trace: <TASK> shrinker_debugfs_scan_write+0x12e/0x270 full_proxy_write+0x5f/0x90 vfs_write+0xde/0x420 ? filp_flush+0x75/0x90 ? filp_close+0x1d/0x30 ? do_dup2+0xb8/0x120 ksys_write+0x68/0xf0 ? filp_flush+0x75/0x90 do_syscall_64+0xb3/0x5b0 entry_SYSCALL_64_after_hwframe+0x76/0x7e The count path has the same issue in principle if a shrinker omits count_objects(). To fix it, only create "count" and "scan" debugfs files when the corresponding callbacks are present.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • bbf535fd6f06b94b9d07ed6f09397a936d4a58d8 to < ebb45c2648b1f60715fd283700f651e05e431231affected
  • bbf535fd6f06b94b9d07ed6f09397a936d4a58d8 to < 09d2407985b8ce3e831f9d4310fe7ac06a6b3ae9affected
  • bbf535fd6f06b94b9d07ed6f09397a936d4a58d8 to < 36f8534f461222291a74156ab91f3ba9f09b6f93affected
  • bbf535fd6f06b94b9d07ed6f09397a936d4a58d8 to < 006467ab932698612398f853344a7405164541f4affected
  • bbf535fd6f06b94b9d07ed6f09397a936d4a58d8 to < b9beed2322f3538b0d2d53307062da4102b8d8d8affected
  • bbf535fd6f06b94b9d07ed6f09397a936d4a58d8 to < e30453c61e185e914fde83c650e268067b140218affected

Linux Linux

Default version status: affected

  • 6.0affected
  • 0 to < 6.0unaffected
  • 6.1.178 to ≤ 6.1.*unaffected
  • 6.6.145 to ≤ 6.6.*unaffected
  • 6.12.96 to ≤ 6.12.*unaffected
  • 6.18.39 to ≤ 6.18.*unaffected
  • 7.1.4 to ≤ 7.1.*unaffected
  • 7.2 to ≤ *unaffected

References