CVE-2026-80744 in Linux
Tóm tắt
Bởi VulDB • 03/09/2026
Trong nhân Linux, lỗ hổng sau đây đã được khắc phục:
netfilter: nf_tables_offload: suppress WARN_ON_ONCE for ENOMEM in abort path
Hàm `nft_flow_rule_offload_abort()` kích hoạt `WARN_ON_ONCE(err)` trong mọi lỗi xảy ra khi rollback, bao gồm cả `-ENOMEM`. Các lỗi phân bổ bộ nhớ là điều dự kiến được dưới các điều kiện thiếu hụt bộ nhớ và không chỉ ra một lỗ hổng kernel.
Trace ví dụ: `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
Cảnh báo này đã được tái hiện trên kernel stable 5.10 dưới áp lực bộ nhớ thông qua fault injection, nhưng lỗ hổng cơ bản cũng tồn tại trong mainline, như minh chứng bởi trace ENOMEM ở trên. Splat sau đây đã được kích hoạt trong quá trình xử lý giao dịch 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
Thay đổi điều kiện thành `WARN_ON_ONCE(err && err != -ENOMEM)` để chỉ phát ra cảnh báo cho các lỗi không mong đợi. Điều này phù hợp với thực hành kernel phổ biến là không cảnh báo khi gặp `-ENOMEM`.
Được tìm thấy bởi Trung tâm Xác minh Linux (linuxtesting.org) với Syzkaller.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.