CVE-2026-80744 in Linux
Сводка
по VulDB • 03.09.2026
В ядре Linux была устранена следующая уязвимость:
netfilter: nf_tables_offload: подавление WARN_ON_ONCE для ENOMEM в пути отката (abort path)
В функции nft_flow_rule_offload_abort() вызов WARN_ON_ONCE(err) срабатывает при каждой ошибке во время выполнения отката, включая ошибку -ENOMEM. Ошибки выделения памяти являются ожидаемыми условиями при низком уровне доступной памяти и не указывают на наличие ошибки в ядре (kernel bug).
Пример трассировки: 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() // завершается ошибкой -ENOMEM
Предупреждение было воспроизведено на стабильном ядре 5.10 под нагрузкой по памяти с использованием инъекции ошибок (fault injection), однако базовая ошибка присутствует и в основной ветке (mainline), что демонстрируется приведенной выше трассировкой ENOMEM. Следующий сплэт был вызван во время обработки транзакций nf_tables:
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
Измените условие на WARN_ON_ONCE(err && err != -ENOMEM), чтобы предупреждения генерировались только для неожиданных ошибок. Это соответствует общепринятой практике ядра Linux — не выдавать предупреждения при возникновении ошибки -ENOMEM.
Обнаружено Центром проверки Linux (linuxtesting.org) с использованием Syzkaller.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.