]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: fix out-of-bound access in ip6_parse_tlv()
authorEric Dumazet <edumazet@google.com>
Thu, 24 Jun 2021 10:07:20 +0000 (03:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 24 Jun 2021 19:42:57 +0000 (12:42 -0700)
commite275ef7827158b219f0dde74ceca8e722aa6551d
treeb03f714aab2751866be7f7eac9e853a284a559ca
parent922c73835558fd71afb266f25dbc0c22f335b1d7
ipv6: fix out-of-bound access in ip6_parse_tlv()

First problem is that optlen is fetched without checking
there is more than one byte to parse.

Fix this by taking care of IPV6_TLV_PAD1 before
fetching optlen (under appropriate sanity checks against len)

Second problem is that IPV6_TLV_PADN checks of zero
padding are performed before the check of remaining length.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Fixes: 8094d0b3dff2 ("net/ipv6/exthdrs.c: Strict PadN option checking")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/exthdrs.c