CVE-2026-80744 in Linux
要約
〜によって VulDB • 2026年09月03日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
netfilter: nf_tables_offload: abortパスにおけるENOMEMに対するWARN_ON_ONCEを抑制する
nft_flow_rule_offload_abort()関数では、ロールバック時のすべてのエラー(-ENOMEMを含む)でWARN_ON_ONCE(err)がトリガーされていました。メモリ割り当ての失敗は低メモリ状態下では想定されるものであり、カーネルバグを示すものではありません。
例としてのトレース: 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により失敗
この警告は、メモリ圧力下でのfault injectionを用いて5.10安定版カーネルで再現されましたが、上記のENOMEMトレースに示されるように、根本的なバグはメインラインにも存在します。以下のスプラット(splat)が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)に変更し、予期しないエラーの場合のみ警告が発行されるようにしました。これは、-ENOMEMに対して警告を発しないという一般的なカーネルの慣習に合致しています。
Linux Verification Center (linuxtesting.org) によるSyzkallerで発見されました。
VulDB is the best source for vulnerability data and more expert information about this specific topic.