Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1532105
| From | Andrey Konovalov <andreyknvl@google.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: net: GPF in eth_header |
| Date | 2016-11-29 11:30 +0100 |
| Message-ID | <sINPH-7eO-1@gated-at.bofh.it> (permalink) |
| References | <sHP7b-189-13@gated-at.bofh.it> <sHPTz-1JW-9@gated-at.bofh.it> <sHQwi-2dp-13@gated-at.bofh.it> <sHRsl-2MG-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Sat, Nov 26, 2016 at 9:05 PM, Eric Dumazet <erdlkml@gmail.com> wrote: >> I actually see multiple places where skb_network_offset() is used as >> an argument to skb_pull(). >> So I guess every place can potentially be buggy. > > Well, I think the intent is to accept a negative number. I'm not sure that was the intent since it results in a signedness issue which leads to an out-of-bounds. A quick grep shows that the same issue can potentially happen in multiple places across the kernel: net/ipv6/ip6_output.c:1655: __skb_pull(skb, skb_network_offset(skb)); net/packet/af_packet.c:2043: skb_pull(skb, skb_network_offset(skb)); net/packet/af_packet.c:2165: skb_pull(skb, skb_network_offset(skb)); net/core/neighbour.c:1301: __skb_pull(skb, skb_network_offset(skb)); net/core/neighbour.c:1331: __skb_pull(skb, skb_network_offset(skb)); net/core/dev.c:3157: __skb_pull(skb, skb_network_offset(skb)); net/sched/sch_teql.c:337: __skb_pull(skb, skb_network_offset(skb)); net/sched/sch_atm.c:479: skb_pull(skb, skb_network_offset(skb)); net/ipv4/ip_output.c:1385: __skb_pull(skb, skb_network_offset(skb)); net/ipv4/ip_fragment.c:391: if (!pskb_pull(skb, skb_network_offset(skb) + ihl)) drivers/net/vxlan.c:1440: __skb_pull(reply, skb_network_offset(reply)); drivers/net/vxlan.c:1902: __skb_pull(skb, skb_network_offset(skb)); drivers/net/vrf.c:220: __skb_pull(skb, skb_network_offset(skb)); drivers/net/vrf.c:314: __skb_pull(skb, skb_network_offset(skb)); A similar thing also happened to somebody else (on a receive path!): https://forums.grsecurity.net/viewtopic.php?f=3&t=4550 Does it make sense to check skb_network_offset() before passing it to skb_pull() everywhere? > > This definitely was assumed by commit e1f165032c8bade authors ! > > I guess they were using a 32bit kernel for their tests. > > -- > You received this message because you are subscribed to the Google Groups "syzkaller" group. > To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller+unsubscribe@googlegroups.com. > For more options, visit https://groups.google.com/d/optout.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
net: GPF in eth_header Dmitry Vyukov <dvyukov@google.com> - 2016-11-26 18:40 +0100
Re: net: GPF in eth_header Eric Dumazet <edumazet@google.com> - 2016-11-26 19:30 +0100
Re: net: GPF in eth_header Andrey Konovalov <andreyknvl@google.com> - 2016-11-26 20:10 +0100
Re: net: GPF in eth_header Eric Dumazet <erdlkml@gmail.com> - 2016-11-26 21:10 +0100
Re: net: GPF in eth_header Eric Dumazet <erdlkml@gmail.com> - 2016-11-26 21:40 +0100
Re: net: GPF in eth_header Andrey Konovalov <andreyknvl@google.com> - 2016-11-29 11:30 +0100
Re: net: GPF in eth_header Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-29 16:00 +0100
Re: net: GPF in eth_header Andrey Konovalov <andreyknvl@google.com> - 2016-11-29 16:40 +0100
Re: net: GPF in eth_header Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-29 17:20 +0100
Re: net: GPF in eth_header Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-28 20:00 +0100
Re: net: GPF in eth_header Andrey Konovalov <andreyknvl@google.com> - 2016-11-28 20:10 +0100
Re: net: GPF in eth_header Dmitry Vyukov <dvyukov@google.com> - 2016-11-28 20:40 +0100
Re: net: GPF in eth_header Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-28 20:50 +0100
Re: net: GPF in eth_header Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-28 22:10 +0100
Re: net: GPF in eth_header Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-28 22:20 +0100
Re: net: GPF in eth_header Florian Westphal <fw@strlen.de> - 2016-11-28 22:40 +0100
Re: net: GPF in eth_header Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-28 23:20 +0100
Re: net: GPF in eth_header Florian Westphal <fw@strlen.de> - 2016-11-28 23:30 +0100
Re: net: GPF in eth_header Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-29 00:20 +0100
csiph-web