---
id: CVE-2026-53106
title: 'bpf: Do not allow deleting local storage in NMI'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  bpf: Do not allow deleting local storage in NMI

  Currently, local storage may deadlock when deferring freeing selem or
  local storage through kfree_rcu(), call_rcu() or …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= a10787e6d58c24b51e91c19c6d16c5da89fcaa4b <
    e84acaf936970b5b0be2c93bbf255295ba9406df
  - >-
    Linux >= a10787e6d58c24b51e91c19c6d16c5da89fcaa4b <
    350de5b8a9befaa2a68861c51f671d4f5f751ca5
  - Linux 5.13
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-06T16:18:55.220576Z'
published: '2026-06-24'
updated: '2026-11-06'
sourceUpdated: '2026-11-06T16:24:00.474Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-53106'
references:
  - url: 'https://git.kernel.org/stable/c/e84acaf936970b5b0be2c93bbf255295ba9406df'
  - url: 'https://git.kernel.org/stable/c/350de5b8a9befaa2a68861c51f671d4f5f751ca5'
tags:
  - cve.org
epss: 0.00143
epssPercentile: 0.03654
ingestedAt: '2026-11-06T16:57:43.290Z'
---

## Overview

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

bpf: Do not allow deleting local storage in NMI

Currently, local storage may deadlock when deferring freeing selem or
local storage through kfree_rcu(), call_rcu() or call_rcu_tasks_trace()
in NMI or reentrant. Since deleting selem in NMI is an unlikely use
case, partially mitigate it by returning error when calling from
bpf_xxx_storage_delete() helpers in NMI. Note that, it is still possible
to deadlock through reentrant. A full mitigation requires returning
error when irqs_disabled() is true, which, however is too heavy-handed
for bpf_xxx_storage_delete().

The long-term solution requires _nolock versions of call_rcu. Another
possible solution is to defer the free through irq_work [0], but it
would grow the size of selem, which is non-ideal.

The check is only needed in bpf_selem_unlink(), which is used by helpers
and syscalls. bpf_selem_unlink_nofail() is fine as it is called during
map and owner tear down that never run in NMI or reentrant.

[0] https://lore.kernel.org/bpf/20260205190233.912-1-alexei.starovoitov@gmail.com/

## Affected

- `Linux >= a10787e6d58c24b51e91c19c6d16c5da89fcaa4b < e84acaf936970b5b0be2c93bbf255295ba9406df`
- `Linux >= a10787e6d58c24b51e91c19c6d16c5da89fcaa4b < 350de5b8a9befaa2a68861c51f671d4f5f751ca5`
- `Linux 5.13`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
