CVE-2026-80744: netfilter: nf_tables_offload: suppress WARN_ON_ONCE for ENOMEM in abort path
In the Linux kernel, the following vulnerability has been resolved:
netfilter: nftablesoffload: suppress WARNONONCE for ENOMEM in abort path
In nftflowruleoffloadabort(), WARNONONCE(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: nftflowoffloadchain() // FLOWBLOCKBIND nftflowblockchain() nftchainoffloadcmd() nftblockoffloadcmd() ->ndosetuptc() nsimsetuptc() flowblockcbsetupsimple() flowblockcballoc() // 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 nftables transaction processing:
WARNING: CPU: 0 PID: 8567 at net/netfilter/nftablesoffload.c:532 nftflowruleoffloadabort net/netfilter/nftablesoffload.c:532 [inline] WARNING: CPU: 0 PID: 8567 at net/netfilter/nftablesoffload.c:532 nftflowruleoffloadcommit+0x971/0xcd0 net/netfilter/nftablesoffload.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:nftflowruleoffloadabort net/netfilter/nftablesoffload.c:532 [inline] RIP: 0010:nftflowruleoffloadcommit+0x971/0xcd0 net/netfilter/nftablesoffload.c:591 Call Trace: nftablescommit+0x3bd/0x4bd0 net/netfilter/nftablesapi.c:8604 nfnetlinkrcvbatch+0xb1e/0x1f20 net/netfilter/nfnetlink.c:509 nfnetlinkrcvskbbatch net/netfilter/nfnetlink.c:579 [inline] nfnetlinkrcv+0x3b3/0x420 net/netfilter/nfnetlink.c:597 netlinkunicastkernel net/netlink/afnetlink.c:1314 [inline] netlinkunicast+0x6cd/0xa00 net/netfilter/afnetlink.c:1340 netlinksendmsg+0x906/0xe10 net/netfilter/afnetlink.c:1919 socksendmsgnosec net/socket.c:651 [inline] socksendmsg+0x155/0x190 net/socket.c:663 syssendmsg+0x705/0x870 net/socket.c:2379 syssendmsg+0x100/0x170 net/socket.c:2433 syssendmsg+0xe9/0x1c0 net/socket.c:2462 dosyscall64+0x33/0x40 arch/x86/entry/common.c:46 entrySYSCALL64afterhwframe+0x67/0xd1
Change the condition to WARNONONCE(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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernelto a version that resolves this vulnerability.Fixed in 5.10.260-syzkaller
Event History
Frequently Asked Questions
Who is realistically exposed to this issue?
Systems using the Linux kernel’s nf_tables offload path are affected when an nftables transaction reaches the flow-rule offload rollback path. The warning was reproduced on a 5.10 stable kernel under memory pressure, and the underlying behavior also exists in mainline.
What conditions are needed to trigger it?
A memory allocation failure (-ENOMEM) must occur while setting up flow offload, followed by rollback in nft_flow_rule_offload_abort(). Low-memory conditions or fault injection can produce this condition; the example trace reaches it through a network device ndo_setup_tc callback.
Does this indicate kernel memory corruption or a failed rollback?
No. The reported warning is caused by WARN_ON_ONCE(err) treating expected -ENOMEM failures during rollback as warnings; allocation failure under memory pressure does not by itself indicate a kernel bug.
How can I tell whether a system has encountered it?
Check kernel logs for a WARNING originating at nft_flow_rule_offload_abort in net/netfilter/nf_tables_offload.c, potentially during nf_tables transaction processing. The example warning includes nft_flow_rule_offload_commit in the call trace.