Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-23278

CVE-2026-23278: Linux Kernel Netfilter DoS Vulnerability

CVE-2026-23278 is a denial of service vulnerability in the Linux kernel's netfilter nf_tables component that affects catchall element processing. This article covers technical details, affected versions, and mitigation.

Updated:

CVE-2026-23278 Overview

CVE-2026-23278 is a Linux kernel vulnerability in the netfilter subsystem, specifically within the nf_tables component. The flaw resides in how nf_tables walks pending catchall elements during transaction processing. When a map holding catchall elements is removed, the kernel fails to toggle all catchall elements and instead processes only the first viable candidate. This leads to incorrect state management and triggers a WARNING in nft_data_release, exposing kernel memory corruption conditions through __nft_set_elem_destroy and nf_tables_abort_release call paths.

Critical Impact

A local authenticated attacker with CAP_NET_ADMIN can trigger kernel state corruption in nf_tables transaction handling, leading to high-impact compromise of confidentiality, integrity, and availability.

Affected Products

  • Linux kernel versions containing the affected nf_tables netfilter implementation
  • Distributions shipping the vulnerable kernel prior to the upstream stable patches
  • Systems exposing nf_tables operations to processes with CAP_NET_ADMIN

Discovery Timeline

  • 2026-03-20 - CVE-2026-23278 published to the National Vulnerability Database
  • 2026-04-02 - Last updated in NVD database

Technical Details for CVE-2026-23278

Vulnerability Analysis

The defect lives in the nf_tables transaction abort path. During processing, the subsystem may hold two catchall elements simultaneously: one live element and one pending element introduced by an in-flight batch. When the parent map is being destroyed, the cleanup routine must iterate every catchall element and toggle its state. The original implementation stops after the first viable candidate, leaving the second catchall element in an inconsistent state.

When nf_tables_abort_release proceeds, it invokes __nft_set_elem_destroy, which in turn calls nft_data_release. The function detects the inconsistent reference state and emits the warning at include/net/netfilter/nf_tables.h:1281. The underlying condition reflects a refcount or type mismatch on set element data, a class of kernel memory safety defect that local attackers can target for privilege escalation.

Root Cause

The root cause is incomplete iteration over pending catchall elements in the abort path when the containing map is also being released. The fix ensures the kernel always walks all pending catchall elements rather than terminating after the first match.

Attack Vector

Exploitation requires local access and the ability to issue nfnetlink batch operations, typically through CAP_NET_ADMIN privileges available in a user namespace on systems where unprivileged user namespaces are enabled. An attacker crafts a transaction batch that adds and removes catchall elements within a map slated for deletion, then forces the transaction to abort. The resulting inconsistent state in nft_data_release can be leveraged to corrupt kernel data structures.

No verified public exploit code is available. See the upstream commits 77c26b5, 7cb9a23, de47a88, and eb0948fa for the technical fix.

Detection Methods for CVE-2026-23278

Indicators of Compromise

  • Kernel log entries showing WARNING at include/net/netfilter/nf_tables.h:1281 referencing nft_data_release
  • Unexpected nf_tables_abort_release call traces in dmesg or journalctl -k output
  • nft processes performing repeated batch transactions involving set or map deletion under non-root UIDs

Detection Strategies

  • Monitor auditd for nfnetlink operations originating from non-administrative users or unprivileged user namespaces
  • Alert on kernel warnings emitted from the nf_tables module, particularly nft_data_release and __nft_set_elem_destroy stack frames
  • Correlate process behavior that creates user namespaces with subsequent nf_tables batch transactions

Monitoring Recommendations

  • Forward /var/log/kern.log and dmesg output to a centralized log platform for kernel warning analysis
  • Track unshare and clone syscalls combined with CAP_NET_ADMIN acquisition events
  • Baseline normal nft administrative activity to identify anomalous batch transaction volumes

How to Mitigate CVE-2026-23278

Immediate Actions Required

  • Apply the upstream kernel patches referenced in commits 77c26b5, 7cb9a23, de47a88, and eb0948fa once they reach your distribution's stable channel
  • Update to the latest distribution kernel package via apt, dnf, or equivalent
  • Reboot affected systems after kernel updates to load the patched image

Patch Information

The upstream fix modifies the nf_tables catchall element walk to always iterate every pending element when the parent map is being removed. Refer to the patch series at Kernel Git Commit 77c26b5, Kernel Git Commit 7cb9a23, Kernel Git Commit de47a88, and Kernel Git Commit eb0948fa.

Workarounds

  • Disable unprivileged user namespaces by setting kernel.unprivileged_userns_clone=0 via sysctl on systems where this feature is not required
  • Restrict CAP_NET_ADMIN to trusted administrative accounts and audit existing grants
  • Block loading of the nf_tables module on systems that do not require it using /etc/modprobe.d/ blacklist entries
bash
# Configuration example
sudo sysctl -w kernel.unprivileged_userns_clone=0
echo 'kernel.unprivileged_userns_clone=0' | sudo tee /etc/sysctl.d/99-harden-userns.conf

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.