CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]   2026/11/10 06:03:24

Modified files:
        lib/libssl     : s3_lib.c ssl_pkt.c 

Log message:
Correct outgoing record checks in the legacy TLSv1.2 stack.

Ensure an existing record is not being written prior to commencing
renegotiation or sending an alert in the legacy TLSv1.2 stack. The way
that TLSv1.2 records are sent was changed in r1.79 of ssl_pkt.c, however
this failed to correctly handle outgoing record checks. This means that
renegotiation can be commenced or an alert can be sent while an application
data record is being written, the size of which is then returned instead of
the size of the handshake record or alert record, resulting in a buffer
overread. This is reachable via renegotiation being triggered in the legacy
TLSv1.2 stack, under the right conditions.

For now also restore the previous SSL_R_BAD_WRITE_RETRY behaviour, which
checks that the retried write matches a given set of constraints. This will
be revisited again in the future.

Thanks to William T. Nelson for reporting the issue and providing a fix.

ok kenjiro@

Reply via email to