CyberSecBulletin

Curl vulnerabilities

We track 58 vulnerabilities in Curl products. 58 are rated high or critical, and none are known to be exploited. The most recent was published on October 20, 2026.

58vulnerabilities
18critical
40high
0exploited
8.2average CVSS score

Latest Curl vulnerabilities

  • 7.5 High severity

    curl: Insufficiently Protected Credentials

    CVE-2026-94266Curl

    libcurl could accidentally return a URL for `curl_easy_getinfo()`'s `CURLINFO_EFFECTIVE_URL` option containing credentials, even though neither the URL provided to libcurl nor the redirected URL did.

  • 9.1 Critical severity

    curl: Exposure of Sensitive Information to an Unauthorized Actor

    CVE-2026-94265Curl

    When processing an HTTP redirect to a URL containing userinfo (a `username:password` component), curl might erroneously retain and re-transmit the original host's HTTP Negotiate authentication state. Consequently, a malicious server can trigger a redirect cont

  • 7.5 High severity

    curl: Uncontrolled Recursion

    CVE-2026-92391CurlEPSS 1.17%

    A deeply nested multipart MIME structure constructed via the public API causes a stack overflow in libcurl during normal cleanup operations. An excessive recursion depth within `curl_mime_free` leads to unbounded stack frame allocation during structure travers

  • 7.5 High severity

    curl: External Control of File Name or Path

    CVE-2026-92390Curl

    When invoked with `--remote-header-name` (`-J`), curl fails to preserve its documented anti-clobbering protection if an intermediate 103 Early Hints response precedes the final HTTP response, or if an `ETag` header is processed before `Content-Disposition` und

  • 8.1 High severity

    curl: Exposure of Sensitive Information to an Unauthorized Actor

    CVE-2026-92389Curl

    libcurl's TFTP state machine fails to validate state transitions against the requested transfer direction, accepting opening server responses for both reads and writes interchangeably. A malicious TFTP server can respond to a download request in a way that for

  • 9.1 Critical severity

    curl: Use After Free

    CVE-2026-92388Curl

    When an FTP wildcard `LIST` operation fails, libcurl omits the restoration path meant for successful listings, leaving the write callback set to the internal listing parser and the write callback data pointing directly to the easy handle. Subsequent reuse of t

  • 8.1 High severity

    curl: Loop with Unreachable Exit Condition

    CVE-2026-92387CurlEPSS 1.04%

    By permanently omitting the final control-response line, a malicious FTP, IMAP, POP3, or SMTP server can exploit libcurl and completely bypass its configured transfer timeout mechanism, indefinitely blocking all concurrent transfers bound to the same multi-han

  • 8.1 High severity

    curl: Improper Validation of Specified Quantity in Input

    CVE-2026-92386Curl

    When writing a long cookie name and value to a Netscape cookie jar, a remote HTTP server can make `curl` write a record that exceeds its line-length parsing limit. Consequently, any subsequent `curl` invocation reading from that same cookie jar using `--cookie

  • 9.1 Critical severity

    curl: Improper Certificate Validation

    CVE-2026-87866Curl

    When built with wolfSSL, curl can successfully validate a pinned public key hash against a key the TLS peer does not possess. During the TLS handshake, wolfSSL validates the connection, but curl's subsequent re-parsing of the same certificate - tricked by a ma

  • 7.4 High severity

    curl: Improper Certificate Validation

    CVE-2026-87865Curl

    When libcurl uses libssh2 with a hashed `known_hosts` file, an unrelated initial entry can cause host key validation to report a key *mismatch* as a *missing* key to the `CURLOPT_SSH_KEYFUNCTION` callback.

  • 8.1 High severity

    curl: Improper Handling of Length Parameter Inconsistency

    CVE-2026-87864Curl

    Enabling `CURLOPT_CRLF` causes curl to advertise the raw input byte count in the `IMAP APPEND {N}` literal while transmitting line-ending expanded data. The server reads only $N$ bytes for the payload, causing the remaining overflow bytes to be interpreted and

  • 8.1 High severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-87863Curl

    An authenticated HTTPS origin can supply an HSTS `max-age` value that the parser accepts, but time serialization later fails to process. On 64-bit systems, extreme max-age values compute an absolute expiry within standard time integer limits that exceeds calen

  • 8.1 High severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-87862Curl

    Importing a `includeSubDomains` parent HSTS entry before a longer-lived child entry, silently drops the child. Consequently, when the parent expires, the child's valid HSTS policy is lost, causing curl to issue unencrypted HTTP requests rather than upgrading t

  • 9.1 Critical severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-87861Curl

    When using ambient user credentials, an HTTP request directed to one origin may be dispatched over a connection previously authenticated via Negotiate for a different origin, leaving the request's intended credentials unused.

  • 7.5 High severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-86415Curl

    libcurl's connection cache match function never considers the automatic client certificate option, so a cached, already authenticated Schannel connection can be handed to a transfer that got redirected to a different origin, even though the code explicitly swi

  • 9.1 Critical severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-86414Curl

    An HTTP proxy can trick libcurl into sending the origin's credentials (Basic password, or a Negotiate/Kerberos ticket) to the proxy itself, by answering the `CONNECT` tunnel request with 401 `WWW-Authenticate:` instead of the expected 407 `Proxy-Authenticate:`

  • 8.1 High severity

    curl: Exposure of Data Element to Wrong Session

    CVE-2026-107929Curl

    When `CURLOPT_INTERFACE` (or the command line tool's `--interface` option) is set with one of the documented prefixes (`if!`, `host!`, `ifhost!`), that binding is not part of the connection reuse key, so a later transfer asking for a different source can silen

  • 8.1 High severity

    curl: Buffer Over-read

    CVE-2026-107928Curl

    When curl is built with GnuTLS, a malicious WebSocket server can make curl send memory past its send buffer. This is due to an out of bounds read following when `gnutls_record_send()` returns a number of bytes sent **greater than the number of bytes it was giv

  • 9.1 Critical severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-86413Curl

    When using an *ambient user* in a first transfer doing Negotiate authentication and asked to follow redirects, curl could pass on its credential details to an unrelated second origin when asked to redirect there.

  • 8.1 High severity

    curl: Improper Check for Unusual or Exceptional Conditions

    CVE-2026-86412Curl

    A remote HTTP server can set a cookie that curl accepts and writes to a Netscape cookie jar but cannot reload. On the next invocation using the same path for `--cookie` and `--cookie-jar`, curl fails before connecting, then the cleanup procedure replaces the j

  • 9.1 Critical severity

    curl: Exposure of Data Element to Wrong Session

    CVE-2026-86411Curl

    An `ftp://` transfer configured with `CURLUSESSL_NONE` can reuse a pooled FTP control connection that a previous easy handle upgraded with `STARTTLS` and authenticated using a client certificate. The second handle performs neither a new TLS handshake nor a new

  • 8.1 High severity

    curl: Improper Validation of Certificate with Host Mismatch

    CVE-2026-86410Curl

    A flaw in the curl command line tool's logic makes it only set SSH host verification options when interacting directly using SFTP or SCP, and not as a result of following a redirect.

  • 8.1 High severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-86409CurlEPSS 1.1%

    Setting `CURLOPT_AWS_SIGV4` to NULL but does not disable SigV4 authentication, contrary to expectations and documentation. A subsequent transfer on the same handle still sends an `Authorization: AWS4-HMAC-SHA256` header to whatever URL isset next, leaking stat

  • 8.1 High severity

    curl: Use After Free

    CVE-2026-92392CurlEPSS 1.28%

    During an upload, curl mishandles HTTP/2 `RST_STREAM` received from the server (with reason `HTTP_1_1_REQUIRED` or `REFUSED_STREAM`) leading to a use after free of a `struct Curl_easy` object.

  • 8.2 High severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-82209Curl

    When libpsl support is enabled, libcurl fails to enforce the Public Suffix List boundary check when processing a `Set-Cookie` header where the `Domain` attribute explicitly matches an origin host that is itself a public suffix (e.g., `Domain=co.uk` set by `co.

  • 7.5 High severity

    curl: Improper Certificate Validation

    CVE-2026-82208Curl

    With the wolfSSL backend, when CA caching is enabled and an `CURLOPT_SSL_CTX_FUNCTION` callback replaces the trust store, libcurl can silently reinstall the cached store after the callback returns. A certificate trusted by the cached store but rejected by the

  • 7.5 High severity

    curl: Insertion of Sensitive Information Into Sent Data

    CVE-2026-80255Curl

    A `Set-Cookie:` header using tab (horizontal tab, ASCII code 9) instead of space (ascii code 32) immediately before the `Secure` attribute causes curl to store the cookie without its Secure flag. The cookie might then wrongfully be sent over plaintext HTTP on

  • 7.5 High severity

    curl: Exposure of Data Element to Wrong Session

    CVE-2026-80231Curl

    A flaw in libcurl makes it wrongly reuse an existing HTTPS connection setup for a given hostname even when using a different Native CA Store setting (`CURLSSLOPT_NATIVE_CA`) than when the connection was created.

  • 7.5 High severity

    curl: Improper Certificate Validation

    CVE-2026-80230Curl

    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 s

  • 7.5 High severity

    curl: Use After Free

    CVE-2026-80229Curl

    When performing transfers via libcurl’s multi interface, pooled TLS connections can outlive their originating easy handles. In OpenSSL 3 provider configurations, libcurl attaches an allocated library context to the easy handle's state and passes it to OpenSSL

  • 9.8 Critical severity

    curl: Exposure of Data Element to Wrong Session

    CVE-2026-19931Curl

    A flaw in libcurl makes it wrongly reuse an HTTP connection setup for a given hostname using Negotiate authentication, when the initial request is done using empty credentials. This can make user B's request get sent over user A's previously authenticated conn

  • 9.1 Critical severity

    curl: Use After Free

    CVE-2026-18924Curl

    A flaw in libcurl's handling of HTTP/2 Server Push streams, when the parent handle is set to share connections with other handles, can lead to use-after-free in the cleanup process.

  • 7.4 High severity

    curl: Improper Restriction of Communication Channel to Intended Endpoints

    CVE-2026-13608Curl

    A flaw in the libcurl SASL negotiation for LDAP authentication allows an incomplete handshake sequence to be misinterpreted as a successful cryptographic verification. An attacker executing a Man-in-the-Middle (MITM) attack can inject a premature or shortcut r

  • 7.4 High severity

    curl: Improper Validation of Certificate with Host Mismatch

    CVE-2026-9547Curl

    When a libcurl-based application performs transfers via `SCP://` or `SFTP://` and utilizes the `CURLOPT_SSH_KEYFUNCTION` callback, it may silently accept an untrusted server. This vulnerability occurs when a server presents a host key type that does not match

  • 7.5 High severity

    curl: Exposure of Sensitive Information to an Unauthorized Actor

    CVE-2026-9546Curl

    A vulnerability in libcurl caused the HTTP `Referer:` header to persist even when explicitly cleared. While the documentation states that passing NULL to `CURLOPT_REFERER` suppresses the header, the option failed to clear the internal state. As a result, the p

  • 7.5 High severity

    curl: Exposure of Sensitive Information to an Unauthorized Actor

    CVE-2026-9545Curl

    In this scenario, libcurl first uses a proper HTTP/3 server for the initial transfers, and when it makes a second transfer to the same site it has been replaced by the attacker's impostor machine - without a valid certificate. When libcurl returns to the hostn

  • 7.3 High severity

    curl: Use After Free

    CVE-2026-9080Curl

    Calling `curl_easy_pause()` within the event-based `CURLMOPT_SOCKETFUNCTION` callback triggers a use-after-free vulnerability, where libcurl attempts to store a flag using a dangling struct pointer immediately after that pointer's memory has been freed.

  • 9.8 Critical severity

    curl: Insufficiently Protected Credentials

    CVE-2026-9079CurlEPSS 1.06%

    libcurl had a flaw that when instructed to clear proxy authentication credentials which made it not do so, leaving the old credentials around to get used for subsequent transfers that should not know nor use them.

  • 7.5 High severity

    curl: Authentication Bypass by Primary Weakness

    CVE-2026-8932Curl

    libcurl would reuse a previously created connection even when some mTLS config related option had been changed that should have prohibited reuse. libcurl keeps previously used connections in a connection pool for subsequent transfers to reuse if one of them ma

  • 9.1 Critical severity

    curl: Authentication Bypass by Capture-replay

    CVE-2026-8927Curl

    When reusing a libcurl handle for sequential transfers driven by environment-variable proxy configuration, libcurl fails to clear the proxy authentication state between requests. Specifically, if the initial transfer authenticates against `proxyA` using Digest