Fix Use After Free for large message sizes
authorMatt Caswell <matt@openssl.org>
Fri, 23 Sep 2016 15:58:11 +0000 (16:58 +0100)
committerMatt Caswell <matt@openssl.org>
Mon, 26 Sep 2016 08:05:30 +0000 (09:05 +0100)
commitacacbfa7565c78d2273c0b2a2e5e803f44afefeb
tree52a99a05f41303d78a75b1a145fa9cf8c43ccf39
parentdf7681e46825d4a86df5dd73317d88923166a506
Fix Use After Free for large message sizes

The buffer to receive messages is initialised to 16k. If a message is
received that is larger than that then the buffer is "realloc'd". This can
cause the location of the underlying buffer to change. Anything that is
referring to the old location will be referring to free'd data. In the
recent commit c1ef7c97 (master) and 4b390b6c (1.1.0) the point in the code
where the message buffer is grown was changed. However s->init_msg was not
updated to point at the new location.

CVE-2016-6309

Reviewed-by: Emilia Käsper <emilia@openssl.org>
(cherry picked from commit 0d698f6696e114a6e47f8b75ff88ec81f9e30175)
ssl/statem/statem.c