-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
ECH: SIGSEGV when use HTTP/3 #13818
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
What is the output of curl -V? Can you reproduce this on other than Android?
|
Android test apk: https://github.com/vvb2060/curl-android/releases/tag/v8.8.0
I only have Android build environment |
That's not a version provided by the curl project. Can you reproduce this when built from the official 8.8.0 source tarball?
|
curl git repository not the same as source tarball? |
Almost but not quite. But the bigger issue is that I don't know how that binary you pointed me to was been built and if and what patches have been applied. But it seems that you're the one building it, so can you confirm that there aren't any patches? |
I don't understand why you are so wary of unofficial builds of binaries. I've given the call stack, but I'm not familiar enough with the code, so I chose to open an issue instead of a PR. Line 3941 in 67b0692
|
I don't understand why you are so wary of unofficial builds of binaries.
Because curl packagers do crazy things to break the binaries they release, and then curl users complain to us.
|
Looking at the stacktrace, it is for HTTP/3. If you do this without ECH, does it happen as well? |
curl --http3-only --ech grease --doh-url https://1.0.0.1/dns-query https://www.cloudflare.com/cdn-cgi/trace |
/cc @sftcd |
Will take a look. I don't have a version with http3 built so might take a wee bit. |
It probably also requires using BoringSSL so that both ECH and HTTP/3 can be enabled in the same build. I'll see if I can get a build like that going myself. |
Yep it says boring in the above. And I guess nghttp3? (I did an apt install of libnghttp3-dev configure not yet enabling h3 for me yet;-) |
ngtcp2 and nghttp3, yes. |
I guess the apt versions of ngtcp2/nghttp3 might be too old, with those I get:
Will go find source I guess. Might take a while;-) |
The ngtcp2 package on debian uses gnutls. That's the only TLS library they ship that supports QUIC (with curl). |
This is how we build from source normally: https://curl.se/docs/http3.html#ngtcp2-version ... but it needs some adjustments to use BoringSSL instead of quictls. |
OK, I have a build and it crashes as above. |
It looks like the issue is here - my code is using |
Two other things:
|
I just pushed a branch with what I think may be the fix for this. Diif is here. Will turn that into a PR once I've tested with the various TLS providers, but comments welcome in the meantime of course. And for the avoidance of doubt: this doesn't mean ECH with work with h3, just that it won't crash if one tries that combo. |
curl works fine |
That really "just worked"? If so, wow! Which TLS library was used
for curl?
S.
…On 9/8/24 19:27, 南宫雪珊 wrote:
> Does anyone know of an h3 server that does support ECH?
```
curl --http3-only --curves X25519Kyber768Draft00 --ech true --doh-url https://1.1.1.1/dns-query https://cloudflare-ech.com/cdn-cgi/trace
fl=22f447
h=cloudflare-ech.com
ip=
ts=1725819781.042
visit_scheme=https
uag=curl/8.9.1-DEV
colo=NRT
sliver=none
http=http/3
loc=CN
tls=TLSv1.3
sni=encrypted
warp=off
gateway=off
rbi=off
kex=X25519Kyber768Draft00
```
|
I did this
curl --http3 --ech true --doh-url https://1.0.0.1/dns-query https://www.cloudflare.com/cdn-cgi/trace
I expected the following
exit 0
curl/libcurl version
curl 8.8.0
operating system
android arm64
The text was updated successfully, but these errors were encountered: