Integrated: 8366244: TLS1.3 ChangeCipherSpec message received after the client's Finished message should trigger a connection abort with "unexpected message"

Artur Barashev abarashev at openjdk.org
Thu Oct 9 14:02:46 UTC 2025


On Fri, 26 Sep 2025 15:38:20 GMT, Artur Barashev <abarashev at openjdk.org> wrote:

> According to the TLS specification, RFC 8446 section 5,
> 
> An implementation may receive an unencrypted record of type
>    change_cipher_spec consisting of the single byte value 0x01 at any
>    time after the first ClientHello message has been sent or received
>    and before the peer's Finished message has been received and MUST
>    simply drop it without further processing. Note that this record may
>    appear at a point at the handshake where the implementation is
>    expecting protected records, and so it is necessary to detect this
>    condition prior to attempting to deprotect the record. An
>    implementation which receives any other change_cipher_spec value or
>    which receives a protected change_cipher_spec record MUST abort the
>    handshake with an "unexpected_message" alert. If an implementation
>    detects a change_cipher_spec record received before the first
>    ClientHello message or after the peer's Finished message, it MUST be
>    treated as an unexpected record type (though stateless servers may
>    not be able to distinguish these cases from allowed cases).
> 
> 
> However the TLS implementation ignores a CCS message received after the client's Finished, instead of sending an alert(fatal, unexpected_message) and aborting the connection.

This pull request has now been integrated.

Changeset: 233d3a8d
Author:    Artur Barashev <abarashev at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/233d3a8d43578af4eafd572cee3db0978d3d65a0
Stats:     135 lines in 2 files changed: 134 ins; 0 del; 1 mod

8366244: TLS1.3 ChangeCipherSpec message received after the client's Finished message should trigger a connection abort with "unexpected message"

Reviewed-by: hchao

-------------

PR: https://git.openjdk.org/jdk/pull/27529


More information about the security-dev mailing list