---
id: CVE-2026-43091
title: 'xfrm: Wait for RCU readers during policy netns exit'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  xfrm: Wait for RCU readers during policy netns exit

  xfrm_policy_fini() frees the policy_bydst hash tables after flushing the
  policy work items and deleting all policie…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d <
    b66920a3348c0f63ba18365248fa21fbf0b3a937
  - >-
    Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d <
    438b1f668ad58f46ce699bb48e4698a7839e3f9e
  - >-
    Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d <
    3733fce2871c9bca9dd18a1a23b1432ea215a094
  - >-
    Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d <
    33a3149dd81a1e2f52b80ee1e0fc380b39f3d028
  - >-
    Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d <
    069daad4f2ae9c5c108131995529d5f02392c446
  - Linux 4.9
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T15:14:31.928454Z'
published: '2026-05-06'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T15:20:32.241Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-43091'
references:
  - url: 'https://git.kernel.org/stable/c/b66920a3348c0f63ba18365248fa21fbf0b3a937'
  - url: 'https://git.kernel.org/stable/c/438b1f668ad58f46ce699bb48e4698a7839e3f9e'
  - url: 'https://git.kernel.org/stable/c/3733fce2871c9bca9dd18a1a23b1432ea215a094'
  - url: 'https://git.kernel.org/stable/c/33a3149dd81a1e2f52b80ee1e0fc380b39f3d028'
  - url: 'https://git.kernel.org/stable/c/069daad4f2ae9c5c108131995529d5f02392c446'
tags:
  - cve.org
epss: 0.00175
epssPercentile: 0.06558
ingestedAt: '2026-10-16T17:24:46.681Z'
---

## Overview

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

xfrm: Wait for RCU readers during policy netns exit

xfrm_policy_fini() frees the policy_bydst hash tables after flushing the
policy work items and deleting all policies, but it does not wait for
concurrent RCU readers to leave their read-side critical sections first.

The policy_bydst tables are published via rcu_assign_pointer() and are
looked up through rcu_dereference_check(), so netns teardown must also
wait for an RCU grace period before freeing the table memory.

Fix this by adding synchronize_rcu() before freeing the policy hash tables.

## Affected

- `Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d < b66920a3348c0f63ba18365248fa21fbf0b3a937`
- `Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d < 438b1f668ad58f46ce699bb48e4698a7839e3f9e`
- `Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d < 3733fce2871c9bca9dd18a1a23b1432ea215a094`
- `Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d < 33a3149dd81a1e2f52b80ee1e0fc380b39f3d028`
- `Linux >= e1e551bc56302b80ff930c966f9985095fb1b70d < 069daad4f2ae9c5c108131995529d5f02392c446`
- `Linux 4.9`

## Remediation

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