]> www.infradead.org Git - users/jedix/linux-maple.git/commit
firewire: net: guard against rx buffer overflows
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sat, 29 Oct 2016 19:28:18 +0000 (21:28 +0200)
committerChuck Anderson <chuck.anderson@oracle.com>
Tue, 7 Feb 2017 04:55:36 +0000 (20:55 -0800)
commit3698e7c1b1a7e0fb57274911a15fa014bc735194
tree50eeeaebabec2fa77ad171df6a8ff7f25b6cc83c
parent6a43f99d3819ca5829a16bc95ef982b225597e47
firewire: net: guard against rx buffer overflows

Orabug: 25063191
CVE: CVE-2016-8633

The IP-over-1394 driver firewire-net lacked input validation when
handling incoming fragmented datagrams.  A maliciously formed fragment
with a respectively large datagram_offset would cause a memcpy past the
datagram buffer.

So, drop any packets carrying a fragment with offset + length larger
than datagram_size.

In addition, ensure that
  - GASP header, unfragmented encapsulation header, or fragment
    encapsulation header actually exists before we access it,
  - the encapsulated datagram or fragment is of nonzero size.

Reported-by: Eyal Itkin <eyal.itkin@gmail.com>
Reviewed-by: Eyal Itkin <eyal.itkin@gmail.com>
Fixes: CVE 2016-8633
Cc: stable@vger.kernel.org
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
(cherry picked from commit 667121ace9dbafb368618dbabcf07901c962ddac)
Signed-off-by: Somasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
Reviewed-by: Jack Vogel <jack.vogel@oracle.com>
drivers/firewire/net.c