CVE-2025-5025
published 2025-05-28CVE-2025-5025: libcurl supports *pinning* of the server certificate public key for HTTPS transfers. Due to an omission, this check is not performed when connecting with QUIC…
PriorityP423medium4.8CVSS 3.1
AVNACHPRNUINSUCLILAN
EPSS
0.08%
23.8th percentile
libcurl supports *pinning* of the server certificate public key for HTTPS transfers. Due to an omission, this check is not performed when connecting with QUIC for HTTP/3, when the TLS backend is wolfSSL. Documentation says the option works with wolfSSL, failing to specify that it does not for QUIC and HTTP/3. Since pinning makes the transfer succeed if the pin is fine, users could unwittingly connect to an impostor server without noticing.
Affected
27 ranges· showing 25
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| curl | curl | 8.10.0 – 8.10.0 | — |
| curl | curl | 8.10.1 – 8.10.1 | — |
| curl | curl | 8.11.0 – 8.11.0 | — |
| curl | curl | 8.11.1 – 8.11.1 | — |
| curl | curl | 8.12.0 – 8.12.0 | — |
| curl | curl | 8.12.1 – 8.12.1 | — |
| curl | curl | 8.13.0 – 8.13.0 | — |
| curl | curl | 8.5.0 – 8.5.0 | — |
| curl | curl | 8.6.0 – 8.6.0 | — |
| curl | curl | 8.7.0 – 8.7.0 | — |
| curl | curl | 8.7.1 – 8.7.1 | — |
| curl | curl | 8.8.0 – 8.8.0 | — |
| curl | curl | 8.9.0 – 8.9.0 | — |
| curl | curl | 8.9.1 – 8.9.1 | — |
| debian | curl | < curl 8.14.0-1 (forky) | curl 8.14.0-1 (forky) |
| haxx | curl | >= 0 < 8.14.0-1 | 8.14.0-1 |
| haxx | curl | >= 0 < 8.14.0-1 | 8.14.0-1 |
| haxx | curl | >= 8.5.0 < 8.14.0 | 8.14.0 |
| msrc | azl3_cmake_3.30.3-6_on_azure_linux_3.0 | — | — |
| msrc | azl3_curl_8.11.1-3_on_azure_linux_3.0 | — | — |
| msrc | azl3_mysql_8.0.41-1_on_azure_linux_3.0 | — | — |
| msrc | azl3_rust_1.75.0-14_on_azure_linux_3.0 | — | — |
| msrc | azl3_rust_1.86.0-1_on_azure_linux_3.0 | — | — |
| msrc | azl3_tensorflow_2.16.1-9_on_azure_linux_3.0 | — | — |
| msrc | cbl2_curl_8.8.0-6_on_cbl_mariner_2.0 | — | — |
CVSS provenance
nvdv3.14.8MEDIUMCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
osv4.8MEDIUM
vendor_debian4.8LOW
vendor_msrc4.8MEDIUM
vendor_redhat4.8MEDIUM
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
Red Hat
curl: libcurl: QUIC Certificate Pinning Bypass
vendor_redhat·2025-05-28·CVSS 4.8
CVE-2025-5025 [MEDIUM] CWE-295 curl: libcurl: QUIC Certificate Pinning Bypass
curl: libcurl: QUIC Certificate Pinning Bypass
libcurl supports *pinning* of the server certificate public key for HTTPS transfers. Due to an omission, this check is not performed when connecting with QUIC for HTTP/3, when the TLS backend is wolfSSL. Documentation says the option works with wolfSSL, failing to specify that it does not for QUIC and HTTP/3. Since pinning makes the transfer succeed if the pin is fine, users could unwittingly connect to an impostor server without noticing.
A flaw was found in libcurl. This vulnerability can allow an attacker to connect to an imposter server via HTTP/3 QUIC connections when using the wolfSSL TLS backend, bypassing certificate pinning verification.
This issue only affects instances of curl and libcurl using WolfSSL as the backend TLS library.
Microsoft
No QUIC certificate pinning with wolfSSL
vendor_msrc·2025-05-13·CVSS 4.8
CVE-2025-5025 [MEDIUM] CWE-295 No QUIC certificate pinning with wolfSSL
No QUIC certificate pinning with wolfSSL
FAQ: Is Azure Linux the only Microsoft product that includes this open-source library and is therefore potentially affected by this vulnerability?
One of the main benefits to our customers who choose to use the Azure Linux distro is the commitment to keep it up to date with the most recent and most secure versions of the open source libraries with which the distro is composed. Microsoft is committed to transparency in this work which is why we began publishing CSAF/VEX in October 2025. See this blog post for more information. If impact to additional products is identified, we will update the CVE to reflect this.
Mariner: Mariner
curl: curl
Customer Action Required: Yes
Remediation: CBL-Mariner Releases
Reference: https://learn.microsoft.com/en
Debian
CVE-2025-5025: curl - libcurl supports *pinning* of the server certificate public key for HTTPS transf...
vendor_debian·2025·CVSS 4.8
CVE-2025-5025 [MEDIUM] CVE-2025-5025: curl - libcurl supports *pinning* of the server certificate public key for HTTPS transf...
libcurl supports *pinning* of the server certificate public key for HTTPS transfers. Due to an omission, this check is not performed when connecting with QUIC for HTTP/3, when the TLS backend is wolfSSL. Documentation says the option works with wolfSSL, failing to specify that it does not for QUIC and HTTP/3. Since pinning makes the transfer succeed if the pin is fine, users could unwittingly connect to an impostor server without noticing.
Scope: local
bookworm: resolved
bullseye: resolved
forky: resolved (fixed in 8.14.0-1)
sid: resolved (fixed in 8.14.0-1)
trixie: resolved (fixed in 8.14.0-1)
GHSA
GHSA-x8ch-h5vv-q6cm: libcurl supports *pinning* of the server certificate public key for HTTPS transfers
ghsa_unreviewed·2025-05-28
CVE-2025-5025 [MEDIUM] CWE-295 GHSA-x8ch-h5vv-q6cm: libcurl supports *pinning* of the server certificate public key for HTTPS transfers
libcurl supports *pinning* of the server certificate public key for HTTPS transfers. Due to an omission, this check is not performed when connecting with QUIC for HTTP/3, when the TLS backend is wolfSSL. Documentation says the option works with wolfSSL, failing to specify that it does not for QUIC and HTTP/3. Since pinning makes the transfer succeed if the pin is fine, users could unwittingly connect to an impostor server without noticing.
OSV
CVE-2025-5025: libcurl supports *pinning* of the server certificate public key for HTTPS transfers
osv·2025-05-28·CVSS 4.8
CVE-2025-5025 [MEDIUM] CVE-2025-5025: libcurl supports *pinning* of the server certificate public key for HTTPS transfers
libcurl supports *pinning* of the server certificate public key for HTTPS transfers. Due to an omission, this check is not performed when connecting with QUIC for HTTP/3, when the TLS backend is wolfSSL. Documentation says the option works with wolfSSL, failing to specify that it does not for QUIC and HTTP/3. Since pinning makes the transfer succeed if the pin is fine, users could unwittingly connect to an impostor server without noticing.
No detection rules found.
No public exploits indexed.
Bugzilla
CVE-2025-5025 curl: libcurl: QUIC Certificate Pinning Bypass
bugzilla·2025-05-28·CVSS 4.8
CVE-2025-5025 [MEDIUM] CVE-2025-5025 curl: libcurl: QUIC Certificate Pinning Bypass
CVE-2025-5025 curl: libcurl: QUIC Certificate Pinning Bypass
libcurl supports *pinning* of the server certificate public key for HTTPS transfers. Due to an omission, this check is not performed when connecting with QUIC for HTTP/3, when the TLS backend is wolfSSL. Documentation says the option works with wolfSSL, failing to specify that it does not for QUIC and HTTP/3. Since pinning makes the transfer succeed if the pin is fine, users could unwittingly connect to an impostor server without noticing.
HackerOne
CVE-2025-5025: No QUIC certificate pinning with wolfSSL
hackerone·2025-05-28·CVSS 4.8
CVE-2025-5025 [MEDIUM] CVE-2025-5025: No QUIC certificate pinning with wolfSSL
CVE-2025-5025: No QUIC certificate pinning with wolfSSL
## Summary:
When using wolfSSL as the TLS backend, certificate pinning does not work when using HTTP/3.
The code should invoke `wssl_verify_pinned()`, but it has not been implemented.
## Affected version
```
# curl -V
WARNING: this libcurl is Debug-enabled, do not use in production
curl 8.13.0 (x86_64-pc-linux-gnu) libcurl/8.13.0 wolfSSL/5.8.0 zlib/1.3.1 libidn2/2.3.8 libpsl/0.21.2 ngtcp2/1.13.0-DEV nghttp3/1.1
Release-Date: 2025-04-02
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS Debug HSTS HTTP3 HTTPS-proxy IDN IPv6 Largefile libz PSL SSL threadsafe TrackMemory UnixSockets
```
## Steps To Reproduce:
I will explain using
2025-05-28
Published