ZeroHour

CVE-2026-80230

PoC large

Public Key Pinning Bypass in libcurl (CVE-2026-80230)

CVSS 3.1
7.5 high
EPSS
<1%p45
Published
()
Modified
AI analysis

libcurl, the widely embedded client-side URL transfer library, fails to enforce public key pinning configured via CURLOPT_PINNEDPUBLICKEY when an application also disables standard peer verification (CURLOPT_SSL_VERIFYPEER=0 and CURLOPT_SSL_VERIFYHOST=0) and the connection is established without a presented server certificate (CWE-295, improper certificate validation). An attacker positioned on the network path, such as a man-in-the-middle, can thereby complete connections to a server that does not present the pinned key - connections the application expected to be rejected - defeating the pinning control. Any application, service, or device built against the affected libcurl and using that specific option combination is exposed; the flaw is rated 7.5 High under CVSS 3.1 (network vector, no privileges or user interaction, availability impact). No public proof-of-concept, CISA KEV listing, or confirmed in-the-wild exploitation is known, and EPSS estimates only a 0.4% probability of exploitation within 30 days.

What to do: Audit your code for calls that set CURLOPT_PINNEDPUBLICKEY while CURLOPT_SSL_VERIFYPEER=0 and CURLOPT_SSL_VERIFYHOST=0, and mitigate by re-enabling standard peer verification (VERIFYPEER=1 / VERIFYHOST=2) so the pinning check is enforced. Apply the patched libcurl release cited in the upstream curl project advisory as soon as a fixed version is published; the available data does not yet include fixed version numbers.

Affected
curl project (curl.se) libcurl
Estimated exposure
large≈100k–1M libcurl-based application/device deployments plausibly exposed; exact count unknown — libcurl is embedded in billions of devices, operating systems and applications, but only the minority of deployments that set CURLOPT_PINNEDPUBLICKEY with standard peer verification disabled are affected, and no public install counts exist…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

When `CURLOPT_PINNEDPUBLICKEY` is configured alongside options that disable standard peer verification (`CURLOPT_SSL_VERIFYPEER = 0` and `CURLOPT_SSL_VERIFYHOST = 0`), libcurl fails to enforce public key pinning on connections established without a presented server certificate. Bypassing the pinning check under these disabled-verification conditions allows unauthenticated connections to succeed when they should be rejected.

Vendors
haxx
Products
curl
Weakness
CWE-295
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

In the news

No ingested article mentions this CVE yet.