CVE-2026-80744 in Linuxinfo

Summary

by MITRE • 09/03/2026

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

netfilter: nf_tables_offload: suppress WARN_ON_ONCE for ENOMEM in abort path

In nft_flow_rule_offload_abort(), WARN_ON_ONCE(err) is triggered on every error during rollback, including -ENOMEM. Memory allocation failures are expected under low-memory conditions and do not indicate a kernel bug.

Trace for example: nft_flow_offload_chain() // FLOW_BLOCK_BIND nft_flow_block_chain() nft_chain_offload_cmd() nft_block_offload_cmd() ->ndo_setup_tc() nsim_setup_tc() flow_block_cb_setup_simple() flow_block_cb_alloc() // fails to -ENOMEM

The warning was reproduced on the 5.10 stable kernel under memory pressure via fault injection, but the underlying bug exists in mainline as well, as demonstrated by the ENOMEM trace above. The following splat was triggered during nf_tables transaction processing:

WARNING: CPU: 0 PID: 8567 at net/netfilter/nf_tables_offload.c:532 nft_flow_rule_offload_abort net/netfilter/nf_tables_offload.c:532 [inline]
WARNING: CPU: 0 PID: 8567 at net/netfilter/nf_tables_offload.c:532 nft_flow_rule_offload_commit+0x971/0xcd0 net/netfilter/nf_tables_offload.c:591 Modules linked in: CPU: 0 PID: 8567 Comm: syz-executor.0 Not tainted 5.10.260-syzkaller #0 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:nft_flow_rule_offload_abort net/netfilter/nf_tables_offload.c:532 [inline]
RIP: 0010:nft_flow_rule_offload_commit+0x971/0xcd0 net/netfilter/nf_tables_offload.c:591 Call Trace: nf_tables_commit+0x3bd/0x4bd0 net/netfilter/nf_tables_api.c:8604 nfnetlink_rcv_batch+0xb1e/0x1f20 net/netfilter/nfnetlink.c:509 nfnetlink_rcv_skb_batch net/netfilter/nfnetlink.c:579 [inline]
nfnetlink_rcv+0x3b3/0x420 net/netfilter/nfnetlink.c:597 netlink_unicast_kernel net/netlink/af_netlink.c:1314 [inline]
netlink_unicast+0x6cd/0xa00 net/netfilter/af_netlink.c:1340 netlink_sendmsg+0x906/0xe10 net/netfilter/af_netlink.c:1919 sock_sendmsg_nosec net/socket.c:651 [inline]
__sock_sendmsg+0x155/0x190 net/socket.c:663 ____sys_sendmsg+0x705/0x870 net/socket.c:2379 ___sys_sendmsg+0x100/0x170 net/socket.c:2433 __sys_sendmsg+0xe9/0x1c0 net/socket.c:2462 do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x67/0xd1

Change the condition to WARN_ON_ONCE(err && err != -ENOMEM) so that warnings are only emitted for unexpected errors. This aligns with the common kernel practice of not warning on -ENOMEM.

Found by Linux Verification Center (linuxtesting.org) with Syzkaller.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 09/03/2026

The vulnerability addressed in this update pertains to a false positive warning condition within the Netfilter subsystem of the Linux kernel, specifically affecting the hardware offloading path for nf_tables rules. The issue manifests during transaction processing when the system attempts to commit or abort flow rule offloads. Under conditions of memory pressure, the function nft_flow_rule_offload_abort is invoked as part of a rollback mechanism after an allocation failure occurs deeper in the call stack, typically within flow_block_cb_alloc which returns -ENOMEM. Previously, this function utilized a WARN_ON_ONCE macro that triggered whenever any error code was returned during the abort phase. This logic failed to distinguish between unexpected internal errors and expected resource exhaustion scenarios, leading to kernel warning splats being logged even when no actual bug existed in the code path itself.

From a technical perspective, the flaw lies in the overly broad condition of the WARN_ON_ONCE macro located at net/netfilter/nf_tables_offload.c line 532. The original implementation triggered warnings for all non-zero error codes returned during the abort sequence. Since memory allocation failures are an expected outcome under low-memory conditions and do not indicate a logic error or corruption in the kernel, treating them as critical warnings pollutes system logs and can mislead administrators into believing there is a stability issue when none exists. The fix modifies this condition to explicitly exclude -ENOMEM from triggering the warning by changing it to WARN_ON_ONCE(err && err != -ENOMEM). This aligns with standard Linux kernel development practices where resource allocation failures are handled gracefully without generating alarming diagnostic messages, ensuring that warnings remain reserved for genuine programming errors or unexpected states.

The operational impact of this vulnerability is primarily related to system observability and log management rather than direct security compromise or data loss. The presence of these false positive warnings can lead to alert fatigue among system administrators who monitor kernel logs for signs of instability. In automated environments, such as those using Syzkaller for fuzz testing or production systems with strict logging policies, these spurious warnings might trigger unnecessary incident responses or mask more critical issues buried in the noise. Furthermore, while the warning itself does not cause a denial of service, the excessive logging can contribute to disk space consumption and I/O overhead on resource-constrained devices, although this is a secondary effect compared to the primary issue of diagnostic accuracy.

This issue maps to CWE-754: Improper Check for Unusual or Exceptional Conditions in Common Code Paths, as the code failed to properly handle an expected exceptional condition (memory allocation failure) within its error handling logic. In terms of attack surface and behavior classification under MITRE ATT&CK, this relates to T1078: Valid Accounts if we consider that malicious actors could potentially use memory pressure techniques to induce these warnings for reconnaissance purposes or log flooding, although the primary vector is simply system stress rather than active exploitation. The vulnerability was identified by the Linux Verification Center using Syzkaller, a powerful fuzzing tool designed to discover kernel bugs through automated input generation and fault injection.

Mitigation strategies involve applying the upstream kernel patch that updates the conditional logic in nft_flow_rule_offload_abort. For systems running stable kernels such as 5.10 or later, administrators should ensure they are using patched versions where this specific check has been refined to ignore -ENOMEM errors during rollback operations. Regularly updating the Linux kernel is essential to maintain accurate diagnostic capabilities and prevent log pollution from expected resource constraints. Additionally, monitoring tools configured to alert on WARN_ON_ONCE events may need tuning to exclude known benign error codes like ENOMEM in network subsystem contexts to reduce noise while maintaining sensitivity for genuine security-relevant anomalies.

Responsible

Linux

Reservation

08/26/2026

Disclosure

09/03/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!