Bug ID 602358: BIG-IP ServerSSL connection may reset during rengotiation with some SSL/TLS servers due to ClientHello version

Last Modified: Apr 28, 2025

Affected Product(s):
BIG-IP LTM(all modules)

Known Affected Versions:
11.6.0, 11.6.0 HF1, 11.6.0 HF2, 11.6.0 HF3, 11.6.0 HF4, 11.6.0 HF5, 11.6.0 HF6, 11.6.0 HF7, 11.6.0 HF8, 11.6.1, 11.6.1 HF1, 12.0.0, 12.0.0 HF1, 12.0.0 HF2, 12.0.0 HF3, 12.0.0 HF4, 12.1.0, 12.1.0 HF1, 12.1.0 HF2, 12.1.1, 12.1.1 HF1, 12.1.1 HF2

Fixed In:
13.0.0, 12.1.2, 11.6.1 HF2

Opened: Jun 30, 2016

Severity: 3-Major

Related Article: K27445283

Symptoms

During SSL/TLS renegotiation, the TLS standard requires that the new ClientHello version matches the first session. Usually, SSL/TLS servers require the new ClientHello version to match the previous negotiated (ServerHello) version. The BIG-IP ServerSSL default behavior is to match this requirement. The problem occurs if the SSL/TLS server requires the ClientHello (both in the Record layer and Handshake Protocol) in the new ClientHello to be exactly the same as the SSL/TLS version of the first ClientHello; that is: ************************************************************ 1st ClientHello record layer version == 2nd ClientHello record layer version; 1st ClientHello Handshake Protocol version == 2nd ClientHello Handshake Protocol version. ************************************************************ As a result, the SSL/TLS server will reject the renegotiation handshake, causing the connection to terminate.

Impact

SSL/TLS renegotiation between BIG-IP ServerSSL profile and server may fail, resulting in an unexpected connection close or reset.

Conditions

This occurs when using virtual servers configured with one or more ServerSSL profiles, and an SSL/TLS renegotiation occurs, and the server requires the new ClientHello version to match the first ClientHello instead of the previous ServerHello version.

Workaround

Manually setting the ciphers in the ServerSSL to TLS1.0 can solve the issue.

Fix Information

A new db variable called ssl.RenegotiateWithInitialClientHello has been added to control the SSL/TLS version in the 2nd ClientHello: 1. The default is disable, which means that the 2nd ClientHello SSL/TLS version will be set to the negotiated version in the 1st round ServerHello. 2. If it is set to enable, both ClientHello versions will be exactly the same.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips