linux_dsm_epyc7002/net
Willem de Bruijn cb9f1b7838 ip: validate header length on virtual device xmit
KMSAN detected read beyond end of buffer in vti and sit devices when
passing truncated packets with PF_PACKET. The issue affects additional
ip tunnel devices.

Extend commit 76c0ddd8c3 ("ip6_tunnel: be careful when accessing the
inner header") and commit ccfec9e5cb ("ip_tunnel: be careful when
accessing the inner header").

Move the check to a separate helper and call at the start of each
ndo_start_xmit function in net/ipv4 and net/ipv6.

Minor changes:
- convert dev_kfree_skb to kfree_skb on error path,
  as dev_kfree_skb calls consume_skb which is not for error paths.
- use pskb_network_may_pull even though that is pedantic here,
  as the same as pskb_may_pull for devices without llheaders.
- do not cache ipv6 hdrs if used only once
  (unsafe across pskb_may_pull, was more relevant to earlier patch)

Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-01-01 12:05:02 -08:00
..
6lowpan
9p
802
8021q
appletalk
atm
ax25 ax25: fix a use-after-free in ax25_fillin_cb() 2018-12-30 14:07:54 -08:00
batman-adv
bluetooth Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-12-27 13:53:32 -08:00
bpf
bpfilter
bridge
caif
can net: Revert recent Spectre-v1 patches. 2018-12-23 16:01:35 -08:00
ceph
core sock: Make sock->sk_stamp thread-safe 2019-01-01 09:47:59 -08:00
dcb
dccp net: dccp: fix kernel crash on module load 2018-12-24 15:27:56 -08:00
decnet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-12-27 13:04:52 -08:00
dns_resolver
dsa
ethernet
hsr
ieee802154 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-12-24 16:19:56 -08:00
ife
ipv4 ip: validate header length on virtual device xmit 2019-01-01 12:05:02 -08:00
ipv6 ip: validate header length on virtual device xmit 2019-01-01 12:05:02 -08:00
iucv
kcm
key
l2tp ppp: Move PFC decompression to PPP generic layer 2018-12-20 16:49:30 -08:00
l3mdev
lapb
llc
mac80211 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-12-27 13:53:32 -08:00
mac802154
mpls
ncsi
netfilter netfilter: nf_conncount: fix argument order to find_next_bit 2018-12-29 02:45:22 +01:00
netlabel
netlink
netrom netrom: fix locking in nr_find_socket() 2018-12-30 20:24:16 -08:00
nfc net: Revert recent Spectre-v1 patches. 2018-12-23 16:01:35 -08:00
nsh
openvswitch
packet packet: validate address length if non-zero 2018-12-22 15:12:04 -08:00
phonet net: Revert recent Spectre-v1 patches. 2018-12-23 16:01:35 -08:00
psample
qrtr
rds net: rds: remove unnecessary NULL check 2019-01-01 09:54:19 -08:00
rfkill
rose
rxrpc
sched Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2018-12-27 13:04:52 -08:00
sctp
smc
strparser
sunrpc sock: Make sock->sk_stamp thread-safe 2019-01-01 09:47:59 -08:00
switchdev
tipc tipc: fix a missing check of genlmsg_put 2018-12-27 16:26:09 -08:00
tls Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-12-21 15:06:20 -08:00
unix
vmw_vsock
wimax
wireless Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2018-12-27 13:53:32 -08:00
x25
xdp
xfrm
compat.c sock: Make sock->sk_stamp thread-safe 2019-01-01 09:47:59 -08:00
Kconfig
Makefile
socket.c
sysctl_net.c