• M
    Fix DTLS handshake message size checks. · 1250f126
    Matt Caswell 提交于
    In |dtls1_reassemble_fragment|, the value of
    |msg_hdr->frag_off+frag_len| was being checked against the maximum
    handshake message size, but then |msg_len| bytes were allocated for the
    fragment buffer. This means that so long as the fragment was within the
    allowed size, the pending handshake message could consume 16MB + 2MB
    (for the reassembly bitmap). Approx 10 outstanding handshake messages
    are allowed, meaning that an attacker could consume ~180MB per DTLS
    connection.
    
    In the non-fragmented path (in |dtls1_process_out_of_seq_message|), no
    check was applied.
    
    Fixes CVE-2014-3506
    
    Wholly based on patch by Adam Langley with one minor amendment.
    Reviewed-by: NEmilia Käsper <emilia@openssl.org>
    1250f126
d1_both.c 41.2 KB