Re: [PATCH net] tcp: don't read out-of-bounds opsize

From: Eric Dumazet
Date: Fri Apr 20 2018 - 10:21:43 EST




On 04/20/2018 06:57 AM, Jann Horn wrote:
> The old code reads the "opsize" variable from out-of-bounds memory (first
> byte behind the segment) if a broken TCP segment ends directly after an
> opcode that is neither EOL nor NOP.
>
> The result of the read isn't used for anything, so the worst thing that
> could theoretically happen is a pagefault; and since the physmap is usually
> mostly contiguous, even that seems pretty unlikely.
>

No page fault possible, because tcp headers are in skb->head

And we have 'struct skb_shared_info' at the end of skb->head anyway.

But, yes, reading some extra bytes with random content is possible.