CVE-2025-13034
cURL vulnerability analysis and mitigation

Overview

CVE-2025-13034 is a certificate pinning bypass vulnerability in curl titled "No QUIC certificate pinning with GnuTLS." It affects curl versions 8.8.0 through 8.17.0 (inclusive) and was disclosed on January 7, 2026, with the fix released in curl 8.18.0 the same day. The vulnerability allows a network attacker to impersonate a server when public key pinning is configured but silently bypassed under specific conditions. It carries a CVSS v3.1 base score of 5.9 (Medium) (curl Advisory, Feedly).

Technical details

The root cause is CWE-295 (Improper Certificate Validation): when curl uses the CURLOPT_PINNEDPUBLICKEY option (or --pinnedpubkey CLI flag), the public key pinning check is supposed to verify the server's certificate against a pinned key. However, this check is silently skipped when three conditions are simultaneously met: (1) the connection uses QUIC (HTTP/3) via the ngtcp2 backend, (2) ngtcp2 is built with GnuTLS as its TLS library, and (3) the user has explicitly disabled standard certificate verification. Other QUIC backends (e.g., quiche, OpenSSL-based ngtcp2) and HTTP/1 or HTTP/2 connections are not affected. The flaw was introduced in commit 3210101088dfa3d6a125 and fixed in commit 3d91ca8cdb3b434226e743946 (curl Advisory). This issue is noted as similar to CVE-2025-5025, which affected a different TLS library in the same code path.

Impact

Successful exploitation allows a network-positioned attacker to act as a man-in-the-middle, impersonating a server that the client believes it has verified via public key pinning. The primary impact is to integrity (CVSS I:H), as the attacker can intercept or modify data in transit without the client detecting the impostor. Confidentiality and availability are not directly impacted by this flaw. The scope is limited to applications using libcurl or the curl tool with QUIC/HTTP3 over ngtcp2+GnuTLS with pinning enabled and standard certificate verification disabled — a narrow but security-sensitive configuration (curl Advisory, Feedly).

Exploitation steps

  1. Identify a target: Locate an application or system using libcurl or the curl tool configured with CURLOPT_PINNEDPUBLICKEY/--pinnedpubkey, connecting over HTTP/3 (QUIC) via ngtcp2 built with GnuTLS, and with standard certificate verification explicitly disabled (CURLOPT_SSL_VERIFYPEER=0 or --insecure).
  2. Position for MitM: Gain a network-on-path position between the curl client and the target server (e.g., via ARP spoofing, DNS hijacking, or rogue Wi-Fi access point).
  3. Present a rogue certificate: Serve a TLS certificate with a different public key than the pinned one. Under normal circumstances, curl would reject this connection; however, due to the bug, the pinning check is skipped in the vulnerable configuration.
  4. Intercept or modify traffic: With the connection accepted, the attacker can read or tamper with the data exchanged between the curl client and the intended server, effectively acting as an undetected impostor (curl Advisory).

Mitigation and workarounds

The primary remediation is to upgrade curl to version 8.18.0 or later, which contains the fix (curl Advisory). If an immediate upgrade is not possible, three workarounds are available: (A) rebuild curl/ngtcp2 with a different TLS library (e.g., OpenSSL or BoringSSL instead of GnuTLS), (B) avoid using HTTP/3 (QUIC) for connections that rely on public key pinning, or (C) do not disable standard certificate verification when using pinning. Downstream distributions including Slackware, Mageia, Ubuntu, Alpine Linux, FreeBSD, and Debian have released updated packages (IBM Advisory).

Community reactions

The vulnerability was reported by Stanislav Fort of Aisle Research on November 9, 2025, and the curl project awarded a bug bounty of 2,540 USD for the report (curl Advisory). curl lead developer Daniel Stenberg announced the curl 8.18.0 release and the advisory on his blog (Daniel Stenberg Blog). The vulnerability received moderate community attention given its narrow exploitation conditions, with discussion on oss-security and social media noting the similarity to CVE-2025-5025. A SolCyber blog post highlighted the issue as a reminder of the subtlety of cryptographic implementation bugs.

Additional resources


SourceThis report was generated using AI

Related cURL vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-9079CRITICAL9.8
  • cURL logocURL
  • rust-doc
NoYesJul 03, 2026
CVE-2026-9546HIGH7.5
  • cURL logocURL
  • s390utils-osasnmpd
NoYesJul 03, 2026
CVE-2026-9545HIGH7.5
  • cURL logocURL
  • libcurl4-32bit
NoYesJul 03, 2026
CVE-2026-9547HIGH7.4
  • cURL logocURL
  • curl.src
NoYesJul 03, 2026
CVE-2026-9080HIGH7.3
  • cURL logocURL
  • rust-std-static-x86_64-unknown-none
NoYesJul 03, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management