Hi!

I have managed to deadlock OpenSSL while running in FIPS mode.

The locking functions are setup according to mttest.c and th-lock.c using
pthread_mutex_.

Please note I have NOT explicitly set a thread id function.

Then env is:
openssl-1.0.1e
openssl-fips-2.0.5
RHEL 6 - 32 bit.

Please let me know if there is any other information I can provide.

Best regards,
Fredrik

My callstacks look like:

Thread 17 (Thread 0xad841b70 (LWP 13059)):
#0  0x00147424 in __kernel_vsyscall ()
#1  0x00a24059 in __lll_lock_wait () from /lib/libpthread.so.0
#2  0x00a1f400 in _L_lock_698 () from /lib/libpthread.so.0
#3  0x00a1f2d1 in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x0024b395 in CRYPTO_lock () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#5  0x002499ba in FIPS_lock () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#6  0x002456ba in fips_drbg_bytes () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#7  0x002d51c0 in RAND_bytes () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0

Thread 11 (Thread 0xa98ffb70 (LWP 13066)):
#0  0x00147424 in __kernel_vsyscall ()
#1  0x00a24059 in __lll_lock_wait () from /lib/libpthread.so.0
#2  0x00a1f400 in _L_lock_698 () from /lib/libpthread.so.0
#3  0x00a1f2d1 in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x0024b395 in CRYPTO_lock () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#5  0x002d3ed0 in ssleay_rand_bytes () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#6  0x002d4f46 in drbg_get_entropy () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#7  0x0023f217 in fips_get_entropy () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#8  0x0023f3cb in drbg_reseed () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#9  0x0023fc14 in FIPS_drbg_generate () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#10 0x00245733 in fips_drbg_bytes () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#11 0x002d51c0 in RAND_bytes () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#12 0x00c9f3df in dtls1_enc () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#13 0x00c9b341 in do_dtls1_write () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#14 0x00c9b615 in dtls1_write_bytes () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#15 0x00c9b68a in dtls1_write_app_data_bytes () from
/opt/ct_mvpn/lib/libssl.so.1.0.0
#16 0x00c85b2a in ssl3_write () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#17 0x00ca0df9 in SSL_write () from /opt/ct_mvpn/lib/libssl.so.1.0.0

Thread 9 (Thread 0xa751db70 (LWP 13095)):
#0  0x00147424 in __kernel_vsyscall ()
#1  0x00a24059 in __lll_lock_wait () from /lib/libpthread.so.0
#2  0x00a1f400 in _L_lock_698 () from /lib/libpthread.so.0
#3  0x00a1f2d1 in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x0024b395 in CRYPTO_lock () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#5  0x002499ba in FIPS_lock () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#6  0x002456ba in fips_drbg_bytes () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#7  0x00245817 in fips_drbg_pseudo () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#8  0x002d5200 in RAND_pseudo_bytes () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#9  0x00c78b5f in ssl3_get_client_hello () from
/opt/ct_mvpn/lib/libssl.so.1.0.0
#10 0x00c97189 in dtls1_accept () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#11 0x00ca445a in SSL_accept () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#12 0x00c9a129 in dtls1_listen () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#13 0x00c9a1d8 in dtls1_ctrl () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#14 0x00ca3673 in SSL_ctrl () from /opt/ct_mvpn/lib/libssl.so.1.0.0

Thread 8 (Thread 0xa6b1cb70 (LWP 13096)):
#0  0x00147424 in __kernel_vsyscall ()
#1  0x00a24059 in __lll_lock_wait () from /lib/libpthread.so.0
#2  0x00a1f400 in _L_lock_698 () from /lib/libpthread.so.0
#3  0x00a1f2d1 in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x0024b395 in CRYPTO_lock () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#5  0x002d3989 in ssleay_rand_add () from
/opt/ct_mvpn/lib/libcrypto.so.1.0.0
#6  0x002d4e06 in drbg_rand_add () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#7  0x00245561 in fips_drbg_add () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#8  0x002d5180 in RAND_add () from /opt/ct_mvpn/lib/libcrypto.so.1.0.0
#9  0x00c96720 in dtls1_accept () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#10 0x00ca445a in SSL_accept () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#11 0x00c9a129 in dtls1_listen () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#12 0x00c9a1d8 in dtls1_ctrl () from /opt/ct_mvpn/lib/libssl.so.1.0.0
#13 0x00ca3673 in SSL_ctrl () from /opt/ct_mvpn/lib/libssl.so.1.0.0

Reply via email to