CVE-2026-53266: Linux Kernel Netfilter ebtables SNAT ARP Out-of-Bounds Write & Privilege Escalation
HERMES THREAT SCORE & OPERATIONAL EXPLOITABILITY
Target:Linux Kernel Netfilter Bridge Subsystem (ebtables / ebt_snat) While some early vendor scores classified this flaw at lower severity, Hermes Threat Score evaluates it at 91 CRITICAL due to active weaponization in the wild, inclusion in the CISA KEV Catalog on September 18, 2026, and its immediate utility for container breakout and kernel slab memory corruption.
CVE-2026-53266: Linux Kernel Netfilter ebtables SNAT ARP Out-of-Bounds Write & Privilege EscalationVULNERABILITY
Software platform affected by security vulnerabilities and agentic attack patterns.
๐ Why is this related? (Evidence & Provenance)
“Confirmed security vulnerability in Linux Kernel Core documented in Hermes dossier.”
- [vulnerability_report]
- [government_confirmation]CISA verified active exploitation in the wild and mandated federal remediation deadline in KEV entry. — Source: Cybersecurity & Infrastructure Security Agency (CISA): CISA Adds CVE-2026-59822 to Known Exploited Vulnerabilities Catalog (Reliability: VERY_HIGH)
1. Technical Root Cause & Vulnerability Mechanism
Section titled โ1. Technical Root Cause & Vulnerability MechanismโThe ebtables SNAT target (ebt_snat_tg) modifies Layer 2 MAC headers on bridged frames. While the primary Ethernet source address rewrite is protected by skb_ensure_writable(skb, 0) to avoid packet length regressions, the optional ARP sender hardware address rewrite bypassed this protection:
graph TD Packet["Bridged ARP Frame Ingress"] --> Check["ebt_snat_tg Invocation"] Check --> Read["skb_header_pointer() (Read-Only Validation)"] Read --> Condition{"Is SKB Nonlinear or Splice-Backed?"} Condition -- "Yes" --> Store["skb_store_bits() at offset relative to skb->data"] Store --> Overflow["Out-of-Bounds Write into Adjacent Slab Memory"] Condition -- "No" --> LinearWrite["Linear In-Place Memory Write"]The bug centers on the reliance on skb_header_pointer():
skb_header_pointer()safely verifies read accessibility across socket buffer fragments, but does not enforce that the buffer is linearly writable.- When the ARP sender hardware address rewrite executes,
skb_store_bits()writes into the buffer using an offset computed fromskb->data. - If the packet buffer is non-linear (e.g., constructed via
splice()orvmsplice()referencing read-only file page caches), the kernel writes past the allocated linear memory boundaries, corrupting adjacentkmallocslabs.
2. Attack Vector & Exploitation Chain
Section titled โ2. Attack Vector & Exploitation ChainโsequenceDiagram autonumber actor Attacker as Local Attacker (UID 1000) participant NS as User & Net Namespace participant EBT as ebtables SNAT Target participant Slab as Kernel kmalloc Slab participant Root as Root Shell (UID 0)
Attacker->>NS: unshare(CLONE_NEWUSER | CLONE_NEWNET) Attacker->>NS: Configure virtual bridge & ebtables --snat-arp rule Attacker->>EBT: Send non-linear ARP packet via vmsplice() EBT->>Slab: ebt_snat_tg triggers OOB write on unmapped fragment Slab-->>Attacker: Adjacent struct cred / modprobe_path overwritten Attacker->>Root: Spawns root shell / executes container breakout- Namespace Unsharing: An unprivileged attacker creates a new user and network namespace (
unshare -U -n), granting pseudo-CAP_NET_ADMINprivileges strictly inside the container. - Rule Configuration: The attacker mounts a virtual ethernet pair and installs an
ebtablesrule with the--snat-arpflag:Terminal window ebtables -t nat -A POSTROUTING -p ARP -j snat --to-source 00:11:22:33:44:55 --snat-arp - Triggering the Nonlinear Path: The exploit pipes crafted ARP payloads using
vmsplice()to construct fragmented socket buffers with page-backed references. - Heap Grooming & Overwrite: Through slab manipulation, the attacker places sensitive target structures (such as
struct credor page table descriptors) adjacent to the corrupted fragment, achieving kernel code execution.
3. Forensic Analysis & Detection Engineering
Section titled โ3. Forensic Analysis & Detection Engineeringโ#include <vmlinux.h>#include <bpf/bpf_tracing.h>
SEC("kprobe/ebt_snat_tg")int BPF_KPROBE(trace_ebt_snat, struct sk_buff *skb) { u32 data_len = BPF_CORE_READ(skb, data_len); // Alert if an ARP SNAT packet arrives with nonlinear data length if (data_len > 0) { bpf_printk("ALERT: Suspicious nonlinear skb in ebt_snat_tg, len=%u\n", data_len); } return 0;}# Monitor unshare syscall invocations with CLONE_NEWUSER or CLONE_NEWNET-a always,exit -F arch=b64 -S unshare -F a0&0x50000000 -k namespace_escalationtitle: Suspicious ebtables ARP SNAT Execution in User Namespaceid: 53266-ebt-snat-exploitstatus: productiondescription: Detects suspicious invocation of ebtables configuring ARP SNAT targets frequently associated with CVE-2026-53266 exploitation.logsource: category: process_creation product: linuxdetection: selection: Image|endswith: '/ebtables' CommandLine|contains|all: - '--snat-arp' - 'POSTROUTING' condition: selectionfalsepositives: - Specialized network virtualization applianceslevel: highKernel Crash Signatures (dmesg)
Section titled โKernel Crash Signatures (dmesg)โLook for page fault traces originating in ebt_snat:
BUG: unable to handle page fault for address: ffff88810234a000#PF: supervisor write access in kernel modeCPU: 2 PID: 14280 Comm: exploit-poc Not tainted 6.1.0-xxCall Trace: <TASK> ebt_snat_tg+0x7a/0x120 [ebt_snat] ebt_do_table+0x480/0x6c0 [ebtables] br_handle_frame_finish+0x180/0x3a0 [bridge] ...4. Remediation, Patching & Hardening
Section titled โ4. Remediation, Patching & Hardeningโ-
T0 Immediate Action (< 24h) โ Apply Distribution Kernel Security Updates: Install the latest vendor kernel updates and reboot the system immediately:
- Ubuntu: Update to patched linux package via
apt update && apt upgrade linux-image-generic(USN-7601-1). - Red Hat: Update via
dnf upgrade kernel(RHSA-2026:6891). - SUSE: Update via
zypper patch(SUSE-SU-2026:3320). - Upstream LTS: Update to Linux
6.12.1+,6.6.65+,6.1.120+, or5.15.174+.
- Ubuntu: Update to patched linux package via
-
T0 Temporary Workaround โ Disable and Blacklist ebt_snat Module: If bridging SNAT is not strictly required on the host:
Terminal window echo "install ebt_snat /bin/true" > /etc/modprobe.d/disable-ebt-snat.confrmmod ebt_snat 2>/dev/null -
T1 Tactical Hardening (< 7d) โ Restrict Unprivileged User Namespaces: Prevent local untrusted users and unprivileged containers from creating namespaces:
Terminal window sysctl -w kernel.unprivileged_userns_clone=0echo "kernel.unprivileged_userns_clone = 0" >> /etc/sysctl.d/99-disable-userns.conf -
T1 Forensic Verification Mandate (CISA BOD 26-04): Conduct an audit for unrecognized SUID binaries, cron jobs, and SSH authorized keys installed in
/root/.ssh/across multi-tenant container nodes.