CVE-2026-80744
Im Linux-Kernel wurde die folgende Schwachstelle behoben: netfilter: nf_tables_offload: WARN_ON_ONCE für ENOMEM im Abbruch-Pfad unterdrücken In nft_flow_rule_offload_abort() wird WARN_ON_ONCE(err) bei jedem Fehler während des Rollbacks ausgelöst, einschließlich -ENOMEM. Speicherzuweisungsfehler werden unter Bedingungen mit wenig Speicher erwartet und weisen nicht auf einen Kernel-Bug hin. Trace zum Beispiel: 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 Die Warnung wurde auf dem 5.10 stable-Kernel unter Speicherdruck mittels Fault Injection reproduziert, aber der zugrundeliegende Bug existiert auch im Mainline, wie der obige ENOMEM-Trace zeigt. Der folgende Splat wurde während der nf_tables-Transaktionsverarbeitung ausgelöst: 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 Ändern Sie die Bedingung zu WARN_ON_ONCE(err && err != -ENOMEM), sodass Warnungen nur für unerwartete Fehler ausgegeben werden. Dies entspricht der gängigen Kernel-Praxis, bei -ENOMEM keine Warnung auszugeben. Gefunden von Linux Verification Center (linuxtesting.org) mit Syzkaller.
Verwandte Artikel
This product uses the NVD API but is not endorsed or certified by the NVD.
Die technische Beschreibung ist unsere Übersetzung des englischen NVD-Originaltexts.
