SSL_get_error() crash (shortened)

Jahn, Gerhard gerhard.jahn at atos.net
Fri Sep 13 05:20:22 UTC 2019


Hello,

We're using OpenSSl 1.1.1b on WIN64 and are facing a (rare but strange) core-dump when doing the following:

After successful TLS1.3 handshake we're calling SSL_read() to get the first 2 Bytes of PDU data from the new connection (ASN.1 TAG + length).
SSL_read() returns 0
According to OpenSSL 1.1.1 documentation:

For SSL_read() and SSL_peek() the following return values can occur:
<= 0

      The read operation was not successful, because either the connection was closed, an error occurred or action must be taken by the calling process. Call SSL_get_error(3)<https://www.openssl.org/docs/man1.1.1/man3/SSL_get_error.html> with the return value ret to find out the reason.

We follow and call SSL_get_error() which crashes with debugger output (only topmost frame is shown here)

LIBSSL!SSL_get_error(struct ssl_st * s = 0x00000000`05be9a00, int i = <Value unavailable error>)+0x18c [d:\data\openssl\64\openssl-1.1.1b\ssl\ssl_lib.c @ 3560]

The OpenSSL source at this reported line looks like:

   if ((s->shutdown & SSL_RECEIVED_SHUTDOWN) &&
        (s->s3->warn_alert == SSL_AD_CLOSE_NOTIFY))
        return SSL_ERROR_ZERO_RETURN;

when we inspect the session "s" in the debugger, we find that s->shutdown == 3 and s->s3 == NULL which finally causes the crash

It looks like a bug in OpenSSL....???

So far it happened only once in our LAB (after some hours of heavy SSL load testing with thousands of SSL connections created/deleted....)
we're currently not able to reproduce it.....
Any comments/ideas/fixes would be appreciated......



Gerhard Jahn
Senior Developer IAM - AITs GER BDS CySP DIRX PDM
T +49 (0) 211 399 33276
T +49 (0) 211 399 22891
gerhard.jahn at atos.net<mailto:gerhard.jahn at atos.net>
Atos Information Technology GmbH
Otto-Hahn-Ring 6
81739 Munich, Germany
atos.net<http://de.atos.net/>/de
 << OLE Object: Picture (Device Independent Bitmap) >>


Atos Information Technology GmbH
Managing Directors: Ursula Morgenstern, Udo Littke; Chairman of the Supervisory Board: Eric Grall; Registered office: Munich; Commercial register of the local court of Munich, HRB 235509



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20190913/f51bf5bb/attachment.html>


More information about the openssl-users mailing list