CVE-2025-38732 netfilter: nf_reject: don't leak dst refcount for loopback packets
Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_reject: don't leak dst refcount for loopback packets recent patches to add a WARN() when replacing skb dst entry found an old bug: WARNING: include/linux/skbuff.h:1165 skb_dst_check_unset include/linux/skbuff.h:1164 [inline] WARNING: include/linux/skbuff.h:1165 skb_dst_set include/linux/skbuff.h:1210 [inline] WARNING: include/linux/skbuff.h:1165 nf_reject_fill_skb_dst+0x2a4/0x330 net/ipv4/netfilter/nf_reject_ipv4.c:234 [..] Call Trace: nf_send_unreach+0x17b/0x6e0 net/ipv4/netfilter/nf_reject_ipv4.c:325 nft_reject_inet_eval+0x4bc/0x690 net/netfilter/nft_reject_inet.c:27 expr_call_ops_eval net/netfilter/nf_tables_core.c:237 [inline] .. This is because blamed commit forgot about loopback packets. Such packets already have a dst_entry attached, even at PRE_ROUTING stage. Instead of checking hook just check if the skb already has a route attached to it.
Affected products and versions
| Product | Affected versions | Fixed in |
|---|---|---|
| Linux 6.17 | earliest → < 6.17 | 6.17 |
| Linux 6.16 | earliest → < 6.16.4 | 6.16.4 |
| Linux 6.12 | earliest → < 6.12.44 | 6.12.44 |
| Linux 6.6 | earliest → < 6.6.103 | 6.6.103 |
| Linux 6.1 | earliest → < 6.1.149 | 6.1.149 |
| Linux 5.15 | earliest → < 5.15.190 | 5.15.190 |
| Linux 5.10 | earliest → < 5.10.241 | 5.10.241 |
| Linux | 5.9 | No fix stated |
| SIMATIC CN 4100 5.0 | earliest → < 5.0 | 5.0 |
Show the 3 other branches Hide the 3 other branches
| Product | Affected versions | Fixed in |
|---|---|---|
| SIMATIC S7-1500 CPU 1518-4 PN/DP MFP 3.1 | 3.1.7 → latest | No fix stated |
| SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP 3.1 | 3.1.7 → latest | No fix stated |
| SIPLUS S7-1500 CPU 1518-4 PN/DP MFP 3.1 | 3.1.7 → latest | No fix stated |
References
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
- git.kernel.org git.kernel.org
Timeline
- Published
- Last modified