Skip to content

Commit 4260ee7

Browse files
committed
netfilter: tproxy: bail out if IP has been disabled on the device
jira LE-1907 cve CVE-2024-36270 Rebuild_History Non-Buildable kernel-4.18.0-553.16.1.el8_10 commit-author Florian Westphal <[email protected]> commit 21a673b syzbot reports: general protection fault, probably for non-canonical address 0xdffffc0000000003: 0000 [#1] PREEMPT SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f] [..] RIP: 0010:nf_tproxy_laddr4+0xb7/0x340 net/ipv4/netfilter/nf_tproxy_ipv4.c:62 Call Trace: nft_tproxy_eval_v4 net/netfilter/nft_tproxy.c:56 [inline] nft_tproxy_eval+0xa9a/0x1a00 net/netfilter/nft_tproxy.c:168 __in_dev_get_rcu() can return NULL, so check for this. Reported-and-tested-by: [email protected] Fixes: cc6eb43 ("tproxy: use the interface primary IP address as a default value for --on-ip") Signed-off-by: Florian Westphal <[email protected]> Signed-off-by: Pablo Neira Ayuso <[email protected]> (cherry picked from commit 21a673b) Signed-off-by: Jonathan Maple <[email protected]>
1 parent ab53e02 commit 4260ee7

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

net/ipv4/netfilter/nf_tproxy_ipv4.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ __be32 nf_tproxy_laddr4(struct sk_buff *skb, __be32 user_laddr, __be32 daddr)
6262

6363
laddr = 0;
6464
indev = __in_dev_get_rcu(skb->dev);
65+
if (!indev)
66+
return daddr;
6567

6668
in_dev_for_each_ifa_rcu(ifa, indev) {
6769
if (ifa->ifa_flags & IFA_F_SECONDARY)

0 commit comments

Comments
 (0)