CVE-2017-16808/AoE: Add a missing bounds check. 97/211897/3 submit/tizen/20190812.033456
authorSeonah Moon <seonah1.moon@samsung.com>
Mon, 12 Aug 2019 01:41:04 +0000 (10:41 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Mon, 12 Aug 2019 01:49:30 +0000 (10:49 +0900)
In aoev1_reserve_print() check bounds before trying to print an Ethernet
address.

Updated from a Denis Ovsienko's fix.

This fixes a buffer over-read discovered by Bhargava Shastry,
SecT/TU Berlin.

https://github.com/the-tcpdump-group/tcpdump/commit/28f610026d901660dd370862b62ec328727446a2?diff=split

Change-Id: I8d6cbde6e93809124a16fc94d3707ec64bf4417e

print-aoe.c

index 97e93df..32fa48f 100644 (file)
@@ -325,6 +325,7 @@ aoev1_reserve_print(netdissect_options *ndo,
                goto invalid;
        /* addresses */
        for (i = 0; i < nmacs; i++) {
+               ND_TCHECK2(cp, ETHER_ADDR_LEN);
                ND_PRINT((ndo, "\n\tEthernet Address %u: %s", i, etheraddr_string(ndo, cp)));
                cp += ETHER_ADDR_LEN;
        }