Dear Maintainer, I tried to reproduce this fault, but did not get a segfault.
However, I think the backtrace points to these lines: (gdb) bt #0 0x00007ffff769dbce in int_ctx_new () at ../crypto/evp/pmeth_lib.c:160 #1 0x00007ffff769dcfa in EVP_PKEY_CTX_new () at ../crypto/evp/pmeth_lib.c:245 #2 0x00007ffff7698d44 in do_sigver_init () at ../crypto/evp/m_sigver.c:29 #3 0x00007ffff7698eab in EVP_DigestVerifyInit () at ../crypto/evp/m_sigver.c:97 #4 0x00007ffff75bc7d2 in ASN1_item_verify () at ../crypto/asn1/a_verify.c:148 #5 0x00007ffff7722490 in X509_verify () at ../crypto/x509/x_all.c:26 ... https://sources.debian.org/src/openssl/1.1.1d-0+deb10u3/crypto/evp/pmeth_lib.c/#L160 159 if (pmeth->init) { 160 if (pmeth->init(ret) <= 0) { 161 ret->pmeth = NULL; As there is a check for pmeth->init being non-null, I guess it contains for some reason an invalid pointer. @Bruce Momjian, maybe you could install the following debug symbols packages `curl-dbgsym libcurl4-dbgsym libssl1.1-dbgsym` from the dbgsym repository described here: https://wiki.debian.org/HowToGetABacktrace#Installing_the_debugging_symbols Then run a new gdb session and when the segfault appears please run these commands in gdb: print pmeth->init bt full 5 Kind regards, Bernhard
# Buster/stable amd64 qemu VM apt update apt dist-upgrade apt install systemd-coredump curl gdb curl https://google.com dpkg -l curl libc6 libcurl4 zlib1g libssl1.1 ii curl 7.64.0-4+deb10u1 amd64 command line tool for transferring data with URL syntax ii libc6:amd64 2.28-10 amd64 GNU C Library: Shared libraries ii libcurl4:amd64 7.64.0-4+deb10u1 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour) ii libssl1.1:amd64 1.1.1d-0+deb10u3 amd64 Secure Sockets Layer toolkit - shared libraries ii zlib1g:amd64 1:1.2.11.dfsg-1 amd64 compression library - runtime benutzer@debian:~$ curl https://google.com <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://www.google.com/">here</A>. </BODY></HTML> gdb -q --args curl https://google.com b ASN1_item_verify y run disassemble ASN1_item_verify b EVP_DigestVerifyInit cont ... generate-core-file /tmp/core (gdb) bt #0 0x00007ffff769dbce in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.1 #1 0x00007ffff7698d44 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.1 #2 0x00007ffff75bc7d2 in ASN1_item_verify () from /lib/x86_64-linux-gnu/libcrypto.so.1.1 #3 0x00007ffff771cfb4 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.1 #4 0x00007ffff771edd6 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.1 #5 0x00007ffff771f416 in X509_verify_cert () from /lib/x86_64-linux-gnu/libcrypto.so.1.1 #6 0x00007ffff782fb88 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.1 #7 0x00007ffff78510f3 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.1 #8 0x00007ffff78536c5 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.1 #9 0x00007ffff784d143 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.1 #10 0x00007ffff7838f34 in SSL_do_handshake () from /lib/x86_64-linux-gnu/libssl.so.1.1 #11 0x00007ffff7fa3240 in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #12 0x00007ffff7fa53f0 in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #13 0x00007ffff7fa61da in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #14 0x00007ffff7f4d462 in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #15 0x00007ffff7f6f6fe in ?? () from /lib/x86_64-linux-gnu/libcurl.so.4 #16 0x00007ffff7f70aa9 in curl_multi_perform () from /lib/x86_64-linux-gnu/libcurl.so.4 #17 0x00007ffff7f67642 in curl_easy_perform () from /lib/x86_64-linux-gnu/libcurl.so.4 #18 0x0000555555569f30 in ?? () #19 0x000055555556b42a in ?? () #20 0x000055555555d8c4 in ?? () #21 0x00007ffff7b5c09b in __libc_start_main (main=0x55555555d770, argc=2, argv=0x7fffffffe608, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe5f8) at ../csu/libc-start.c:308 #22 0x000055555555d9da in ?? () apt install curl-dbgsym libcurl4-dbgsym libssl1.1-dbgsym gdb -q /usr/bin/curl --core /tmp/core set width 0 set pagination off (gdb) bt #0 0x00007ffff769dbce in int_ctx_new (pkey=pkey@entry=0x555555601a10, e=e@entry=0x0, id=<optimized out>, id@entry=-1) at ../crypto/evp/pmeth_lib.c:160 #1 0x00007ffff769dcfa in EVP_PKEY_CTX_new (pkey=pkey@entry=0x555555601a10, e=e@entry=0x0) at ../crypto/evp/pmeth_lib.c:245 #2 0x00007ffff7698d44 in do_sigver_init (ctx=ctx@entry=0x555555601930, pctx=pctx@entry=0x0, type=type@entry=0x7ffff77d5fc0 <sha256_md>, e=e@entry=0x0, pkey=pkey@entry=0x555555601a10, ver=ver@entry=1) at ../crypto/evp/m_sigver.c:29 #3 0x00007ffff7698eab in EVP_DigestVerifyInit (ctx=ctx@entry=0x555555601930, pctx=pctx@entry=0x0, type=type@entry=0x7ffff77d5fc0 <sha256_md>, e=e@entry=0x0, pkey=pkey@entry=0x555555601a10) at ../crypto/evp/m_sigver.c:97 #4 0x00007ffff75bc7d2 in ASN1_item_verify (it=0x7ffff77e7e80 <X509_CINF_it>, a=a@entry=0x5555555fda18, signature=signature@entry=0x5555555fda28, asn=asn@entry=0x5555555fd990, pkey=0x555555601a10) at ../crypto/asn1/a_verify.c:148 #5 0x00007ffff7722490 in X509_verify (a=a@entry=0x5555555fd990, r=<optimized out>) at ../crypto/x509/x_all.c:26 #6 0x00007ffff771cfb4 in internal_verify (ctx=0x555555601550) at ../crypto/x509/x509_vfy.c:1750 #7 0x00007ffff771edd6 in verify_chain (ctx=0x555555601550) at ../crypto/x509/x509_vfy.c:232 #8 verify_chain (ctx=0x555555601550) at ../crypto/x509/x509_vfy.c:207 #9 0x00007ffff771f416 in X509_verify_cert (ctx=ctx@entry=0x555555601550) at ../crypto/x509/x509_vfy.c:295 #10 0x00007ffff782fb88 in ssl_verify_cert_chain (s=s@entry=0x5555555ef0a0, sk=sk@entry=0x5555556008a0) at ../ssl/ssl_cert.c:427 #11 0x00007ffff78510f3 in tls_process_server_certificate (s=0x5555555ef0a0, pkt=0x7fffffffdb10) at ../ssl/statem/statem_clnt.c:1897 #12 0x00007ffff78536c5 in ossl_statem_client_process_message (s=0x5555555ef0a0, pkt=<optimized out>) at ../ssl/statem/statem_clnt.c:1039 #13 0x00007ffff784d143 in read_state_machine (s=0x5555555ef0a0) at ../ssl/statem/statem.c:636 #14 state_machine (s=0x5555555ef0a0, server=0) at ../ssl/statem/statem.c:434 #15 0x00007ffff7838f34 in SSL_do_handshake (s=0x5555555ef0a0) at ../ssl/ssl_lib.c:3607 #16 0x00007ffff7fa3240 in ossl_connect_step2 (conn=conn@entry=0x5555555c0d60, sockindex=sockindex@entry=0) at vtls/openssl.c:2790 #17 0x00007ffff7fa53f0 in ossl_connect_common (conn=0x5555555c0d60, sockindex=0, nonblocking=true, done=0x7fffffffde28) at vtls/openssl.c:3591 #18 0x00007ffff7fa61da in Curl_ssl_connect_nonblocking (conn=conn@entry=0x5555555c0d60, sockindex=sockindex@entry=0, done=0x7fffffffde28) at vtls/vtls.c:275 #19 0x00007ffff7f4d462 in https_connecting (conn=0x5555555c0d60, done=<optimized out>) at http.c:1521 #20 0x00007ffff7f6f6fe in multi_runsingle (multi=multi@entry=0x5555555be950, now=..., data=data@entry=0x5555555c2bb0) at multi.c:1650 #21 0x00007ffff7f70aa9 in curl_multi_perform (multi=multi@entry=0x5555555be950, running_handles=running_handles@entry=0x7fffffffdfa4) at multi.c:2217 #22 0x00007ffff7f67642 in easy_transfer (multi=0x5555555be950) at easy.c:686 #23 easy_perform (events=false, data=0x5555555c2bb0) at easy.c:780 #24 curl_easy_perform (data=data@entry=0x5555555c2bb0) at easy.c:799 #25 0x0000555555569f30 in operate_do (global=global@entry=0x7fffffffe480, config=0x5555555a8c00) at tool_operate.c:1578 #26 0x000055555556b42a in operate (config=0x7fffffffe480, argc=<optimized out>, argv=<optimized out>) at tool_operate.c:2081 #27 0x000055555555d8c4 in main (argc=2, argv=0x7fffffffe608) at tool_main.c:326 (gdb) disassemble Dump of assembler code for function int_ctx_new: 0x00007ffff769db20 <+0>: push %r13 0x00007ffff769db22 <+2>: push %r12 0x00007ffff769db24 <+4>: mov %rdi,%r12 0x00007ffff769db27 <+7>: push %rbp 0x00007ffff769db28 <+8>: mov %rsi,%rbp 0x00007ffff769db2b <+11>: push %rbx 0x00007ffff769db2c <+12>: mov %edx,%ebx 0x00007ffff769db2e <+14>: sub $0x8,%rsp 0x00007ffff769db32 <+18>: cmp $0xffffffff,%edx 0x00007ffff769db35 <+21>: je 0x7ffff769dc20 <int_ctx_new+256> 0x00007ffff769db3b <+27>: test %rbp,%rbp 0x00007ffff769db3e <+30>: jne 0x7ffff769dbf5 <int_ctx_new+213> 0x00007ffff769db44 <+36>: test %r12,%r12 0x00007ffff769db47 <+39>: je 0x7ffff769dbf5 <int_ctx_new+213> 0x00007ffff769db4d <+45>: mov 0x20(%r12),%rbp 0x00007ffff769db52 <+50>: test %rbp,%rbp 0x00007ffff769db55 <+53>: je 0x7ffff769dbf0 <int_ctx_new+208> 0x00007ffff769db5b <+59>: mov %rbp,%rdi 0x00007ffff769db5e <+62>: callq 0x7ffff75a3dd0 <ENGINE_init@plt> 0x00007ffff769db63 <+67>: test %eax,%eax 0x00007ffff769db65 <+69>: je 0x7ffff769dc60 <int_ctx_new+320> 0x00007ffff769db6b <+75>: mov %ebx,%esi 0x00007ffff769db6d <+77>: mov %rbp,%rdi 0x00007ffff769db70 <+80>: callq 0x7ffff759d630 <ENGINE_get_pkey_meth@plt> 0x00007ffff769db75 <+85>: mov %rax,%r13 0x00007ffff769db78 <+88>: test %r13,%r13 0x00007ffff769db7b <+91>: je 0x7ffff769dc30 <int_ctx_new+272> 0x00007ffff769db81 <+97>: mov $0x90,%edx 0x00007ffff769db86 <+102>: lea 0xc7cee(%rip),%rsi # 0x7ffff776587b 0x00007ffff769db8d <+109>: mov $0x50,%edi 0x00007ffff769db92 <+114>: callq 0x7ffff75a2d30 <CRYPTO_zalloc@plt> 0x00007ffff769db97 <+119>: mov %rax,%rbx 0x00007ffff769db9a <+122>: test %rax,%rax 0x00007ffff769db9d <+125>: je 0x7ffff769dcb0 <int_ctx_new+400> 0x00007ffff769dba3 <+131>: mov %rbp,0x8(%rax) 0x00007ffff769dba7 <+135>: mov %r13,(%rax) 0x00007ffff769dbaa <+138>: movl $0x0,0x20(%rax) 0x00007ffff769dbb1 <+145>: mov %r12,0x10(%rax) 0x00007ffff769dbb5 <+149>: test %r12,%r12 0x00007ffff769dbb8 <+152>: je 0x7ffff769dbc2 <int_ctx_new+162> 0x00007ffff769dbba <+154>: mov %r12,%rdi 0x00007ffff769dbbd <+157>: callq 0x7ffff75a29c0 <EVP_PKEY_up_ref@plt> 0x00007ffff769dbc2 <+162>: mov 0x8(%r13),%rax 0x00007ffff769dbc6 <+166>: test %rax,%rax 0x00007ffff769dbc9 <+169>: je 0x7ffff769dbd8 <int_ctx_new+184> 0x00007ffff769dbcb <+171>: mov %rbx,%rdi => 0x00007ffff769dbce <+174>: callq *%rax 0x00007ffff769dbd0 <+176>: test %eax,%eax 0x00007ffff769dbd2 <+178>: jle 0x7ffff769dc90 <int_ctx_new+368> ... 0x00007ffff769dcde <+446>: xchg %ax,%ax 0x00007ffff769dce0 <+448>: xor %ebx,%ebx 0x00007ffff769dce2 <+450>: jmpq 0x7ffff769dbd8 <int_ctx_new+184> End of assembler dump. https://sources.debian.org/src/openssl/1.1.1d-0+deb10u3/crypto/evp/pmeth_lib.c/#L160 apt install valgrind