15685 matches found
curl: CVE-2026-92391: curl_mime_free stack overflow by recursion
Hi all, I've discovered a stack overflow in libcurl's MIME cleanup code. The read path in the MIME implementation is protected by a recursion depth limit MAXMIMELEVELS = 40, defined at line 47 of lib/mime.c and checked in readpartcontent and related functions, but the cleanup path has no equivale...
curl: libcurl LDAP LDIF: entry DN and attribute names written without RFC 2849 base64 encoding, allowing server line injection
Summary: curl 8.22.0 base64-encodes LDAP attribute values that aren't RFC 2849 SAFE-STRINGs commit 2ba2fe3540, issue 22339, but the entry DN and the attribute names are still written to the LDIF output verbatim. In lib/openldap.c oldaprecv that's the DN clientwritedata, STRCONST"DN: ", bv.bvval,...
curl: CVE-2026-92390: -J no-clobber guarantee bypassed with 103 early hints
Hi all, I found a way for a server to defeat --remote-header-name's -J no-clobber guarantee: with curl -O -J -i, sending a 103 Early Hints before the final response or an ETag ahead of Content-Disposition under --etag-save lets a server overwrite an existing file it names via Content-Disposition,...
curl: CVE-2026-92389: TFTP direction confusion
Hi all, curl's TFTP state machine accepts either direction's opening response regardless of which one was requested. A malicious TFTP server can answer an RRQ with ACK block 0, which flips curl into transmit mode and causes it to drain whatever read source the handle's sticky CURLOPTREADDATA poin...
Weblate: Uncaught RecursionError crash in translation-finder (deep directory tree DoS)
A denial of service vulnerability was discovered in a translation discovery tool where uncaught recursion errors could crash processing during repository scanning. The issue occurred when scanning directories nested approximately 1000 levels deep, which exceeded the Python recursion limit and...
curl: CVE-2026-92388: FTP wildcard write callback mixup
Hi all, A failed FTP wildcard LIST leaves data-set.fwritefunc pointing at libcurl's internal listing parser and data-set.out pointing at the easy handle itself, because the code path that restores them is only reached on a successful listing. That alone is a crash on reuse. However,...
curl: CVE-2026-92387: never-ending loop via server response omission
Hi all, I found a way to make a malicious FTP, IMAP, POP3, or SMTP server defeat libcurl's own transfer timeout entirely and, worse, freeze every other transfer sharing the same multi handle. All it takes is never sending a final control-response line. The bug Curlppstatemach checks the response...
curl: CVE-2026-92386: server-set cookie aborts cookie jar load
Hi all, I found a way for a remote server to poison a shared cookie jar so that later, unrelated transfers fail before any network I/O happens. It just has to send a Set-Cookie that curl happily accepts but can never read back from its own jar file. The bug parsecookieheader accepts a Set-Cookie...
curl: TELNET control and environment data bypass HTTPS-proxy TLS
Hi, I found a way to make libcurl send TELNET credential and environment data in cleartext to a TELNET origin, even when the connection is supposedly protected by an HTTPS proxy tunnel. The tunnel's TLS never sees it. The bug For telnet:// routed through an HTTPS proxy, generic connection setup...
curl: Socket API drops expired timeouts for transfers queued behind a connection limit
Hi all, I found a way to make libcurl silently and permanently drop a transfer's CURLOPTTIMEOUTMS/CURLOPTCONNECTTIMEOUTMS deadline. It happens when that transfer is queued behind a connection-count limit and the application drives libcurl through the event-driven curlmultisocketaction API instead...
curl: IMAP custom FETCH literals can spoof tagged responses and desynchronize reused connections
Summary There is an IMAP parser vulnerability, related to a custom FETCH whose message set begins with a range or comma, iscustomfetchlisting causes imapstatelistsearchresp to skip literal parsing lib/imap.c:1233-1235. The generic ping-pong reader nevertheless continues parsing the response as...
Essity: Unauthenticated API allows reading, writing to and deleting any user's private chat history on ████████
An unauthenticated API was discovered that allowed reading, writing to, and deleting any user's private chat history on the organization's internal chatbot application. The API had no authentication mechanism in place, allowing an attacker to list all conversations, retrieve the complete message...
curl: TLS session resumption client cert bypass with CURLOPT_SSL_CTX_FUNCTION
AI use Cipher, by Causal Security, was used to find, exploit and confirm this issue. A further check was carried out to establish, as far as is possible from outside the project, that it is neither a duplicate of an existing report or advisory nor documented as intended behaviour. Everything belo...
curl: One Strict-Transport-Security response header empties the victim's entire HSTS store, silently,
Summary One Strict-Transport-Security response header, from any HTTPS server the victim contacts, leaves the victim's on-disk HSTS store at zero bytes. Every host in it loses HSTS protection, including hosts unrelated to the server that sent the header. curl exits 0 and prints nothing. Two...
HackerOne: HackerOne Code sends live password-reset tokens to Segment in automatic page events
A vulnerability was discovered in the HackerOne Code application, where opening a password-reset link automatically sent the complete unused 64-character reset token to Segment as the page loaded, before the reset form was submitted. The token was present in various fields of the Segment page...
R3: Full Admin Takeover of R3 Limited's JFrog Artifactory - 292 Users, Corda Enterprise & CBDC Supply Chain Compromised
A critical authentication bypass vulnerability was identified in an enterprise artifact repository system. The vulnerability, with a CVSS score of 9.8, resulted from a default empty join key that allowed unauthenticated attackers to forge authentication tokens and gain full administrative access...
Ruby on Rails: Action Text to_markdown: <code>/<pre> content escapes its delimiter, letting a stored body inject arbitrary Markdown
Summary ActionText::Contenttomarkdown escapes text nodes so that a stored rich text body cannot turn into Markdown syntax. Text whose immediate parent is or is exempt from that escaping MarkdownConversion::SKIPESCAPINGPARENTS and is instead kept inert by the delimiter its visitor wraps around it...
curl: HTTP Digest nonce reused across an https→http scheme change on the same handle
Hi all, Last one from my side. Looks like https://hackerone.com/reports/3793260 was not patched completely correctly, and libcurl emit a live Authorization: Digest response computed from a nonce/realm it only ever received over TLS preemptively over plaintext HTTP, on a reused easy handle that...
curl: CVE-2026-86415: auto client cert connection reuse mixup
Howdy, libcurl's connection-cache matcher never checks autoclientcert, so a cached, already-authenticated Schannel connection can be handed to a transfer that just got redirected to a different origin, even though the code explicitly computed autoclientcert = FALSE for that transfer to prevent...
curl: Apple SecTrust fallback ignores CURLOPT_CRLFILE, letting a revoked cert pass
When libcurl is built with USEAPPLESECTRUST and the native Apple trust store is in use, a certificate that OpenSSL/GnuTLS rejects because it is on the operator's CURLOPTCRLFILE list is re-checked by Apple's SecTrust API instead, and SecTrust is never told about that CRL file at all. The bug...
curl: CVE-2026-86414: leaking host credentials to HTTP proxy
Hi all, I've found that found that an untrusted 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...
curl: CVE-2026-86413: Negotiate credentials sent to redirected origin
Hi all, I found a way to make libcurl send a live SPNEGO/Kerberos Authorization: Negotiate token to a host the client never intended to authenticate to, bypassing the cross-host auth restriction, when following a redirect whose Location: header embeds userinfo http://user:[email protected]/.... The...
curl: CVE-2026-87866: wolfSSL public-key pinning bypass
Summary curl 8.22.0 built with wolfSSL can accept a CURLOPTPINNEDPUBLICKEY hash for a key the TLS peer does not possess. wolfSSL completes the TLS handshake using public key A from a malformed certificate. curl then reparses the same DER using CurlparseX509 and, because of a manipulated validity...
Mozilla: Stored XSS on the public Pontoon dashboards: the latest-activity tooltip re-parses a contributor's account address as HTML
A stored cross-site scripting vulnerability was discovered in public dashboards where contributor-supplied data values were concatenated into markup without proper encoding. An attacker could register an account with a malicious script in the email address field, which would then execute in the...
Khan Academy: Client-Side Denial of Service (DoS) via Memory Exhaustion on Password Reset Endpoint
A client-side denial of service vulnerability was identified on a password reset endpoint. When the endpoint was accessed by an authenticated user, the browser automatically generated thousands of requests without user interaction, resulting in rapid memory exhaustion. The browser became...
curl: Cross-origin redirect reuses a pooled Negotiate-authenticated connection from an unrelated transfer
AI Disclosure: AI tools were used to assist with code analysis and drafting this report. All findings were independently investigated, verified against the source, and reproduced manually by me before submission. Summary curl withholds a fresh Authorization header when a redirect crosses origins...
curl: IMAP connection reuse runs requests in the wrong case-sensitive mailbox
When libcurl reuses an authenticated IMAP connection, lib/imap.c:2071-2089 uses curlstrequal to decide whether the requested mailbox is already selected. RFC 9051 section 5.1 requires clients to work with servers where non-INBOX mailbox names are case-sensitive, while only INBOX is guaranteed to ...
curl: CVE-2026-87865: knownhost callback mismatches key as missing
When libcurl uses libssh2 with a hashed OpenSSH knownhosts file, an unrelated first entry can make a hostile key for an already pinned SFTP/SCP host reach CURLOPTSSHKEYFUNCTION as CURLKHMATCHMISSING instead of CURLKHMATCHMISMATCH. At...
curl: 56: IBM i CL wrapper `parse_command_line()` never enters quote mode
Summary In projects/OS400/curlcl.c, the parsecommandline function initializes quote to '\0' but no code path ever assigns an opening ' or " to it. The close-quote check line 82, quote-aware backslash handling line 88, and unterminated-quote error line 106 are all dead code. As a result, quote...
curl: 55: Heap-buffer-overflow read in `curl_formadd_ccsid()` with binary form data
Summary curlformaddccsid in projects/OS400/ccsidcurl.c performs a heap-buffer-overflow read when CURLFORMCONTENTTYPE appears before an explicit length CURLFORMCONTENTLEN / CURLFORMCONTENTSLENGTH for binary CURLFORMCOPYCONTENTS data containing embedded NUL bytes. The overread bytes are copied into...
curl: 53: HTTP/1 CONNECT chunked-407 trailers bypass CURLOPT_SUPPRESS_CONNECT_HEADERS and lose CURLH_CONNECT classification
Summary When an HTTP/1 proxy returns a chunked 407 Proxy Authentication Required during a CONNECT handshake, any trailer fields in that response are delivered to the header callback even when CURLOPTSUPPRESSCONNECTHEADERS is enabled, and are classified as CURLHTRAILER instead of CURLHCONNECT in t...
curl: 50: CMake `HTTP_ONLY` does not disable SSH backends — SCP and SFTP remain usable
Summary The CMake HTTPONLY=ON option is documented as "Disable all protocols except HTTP" CMakeLists.txt:538, but the implementation CMakeLists.txt:541-557 only sets CURLDISABLE flags for non-SSH protocols. It does not disable CURLUSELIBSSH2 or CURLUSELIBSSH. Since CURLUSELIBSSH2 defaults to ON, ...
curl: 57: Heap out-of-bounds read in `curl_easy_escape_ccsid()` / `curl_easy_unescape_ccsid()`
Summary curleasyescapeccsid and curleasyunescapeccsid in projects/OS400/ccsidcurl.c discard the converted byte count returned by dynconvert and pass 0 to the downstream curleasyescape / curleasyunescape. When the caller supplies a positive explicit length with non-NUL-terminated input, dynconvert...
curl: 54: Rejected HTTP/2 push destroys MIME callback state still used by parent (use-after-free)
Summary pushpromise in lib/http2.c duplicates the parent easy handle before validating the pushed URL. When validation fails e.g. unsupported scheme, discardnewhandle destroys the duplicate. For callback-backed MIME uploads, Curlmimeduppart copies the same readfunc, freefunc, and arg pointer, so...
curl: CVE-2026-86412: server-set cookie erases cookie jar
Summary 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 with CURLETOOLARGE 100 before connecting, then cleanup replaces the jar with an empty 131-byt...
curl: 49: Cookie-jar save transfers group access to a different GID
Summary Curlfopen copies the old cookie jar's permission bits onto a newly created temp file, but the temp file may receive a different GID the process's primary group instead of the old file's group. After rename, group-permission bits that were intended for one group now authorize a different...
curl: CVE-2026-86411: FTP connection reuse inherits client-certificate
Summary An ftp:// transfer configured with CURLUSESSLNONE 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 FTP login, so the server continues ...
curl: CVE-2026-86410: redirect to SFTP or SCP bypasses host verification
Summary sshsetopts in src/config2setopts.c returns immediately when the initial URL is not SCP or SFTP. This means --knownhosts, --hostpubsha256, and --hostpubmd5 are never installed on the easy handle when the initial URL is HTTPS. If --location --proto-redir +sftp is used and the server returns...
curl: 42: `VMS_STS` macro typo (`< 3` vs `<< 3`) turns curl failures into successful OpenVMS conditions
Summary VMSSTS in src/toolvms.h line 46 uses a comparison 3 where a left-shift 3 is intended. This causes VMSSTSHIDE to evaluate to 0x10000001 instead of 0x10000000, setting bit 0 the OpenVMS success bit. When curl runs under DCL with --silent and without --show-error, the mask is ORed into the...
curl: 41: `main_checkfds()` pipe reuse leaks proxy credentials into HTTPS upload body
Summary When curl is launched with stdin fd 0 and stderr fd 2 closed, maincheckfds in src/toolmain.c can assign opposite ends of the same pipe to fd 0 and fd 2. In verbose mode with a stdin-based upload through an authenticated proxy, the Proxy-Authorization header written to stderr becomes...
curl: 37: `curl_mprintf` `%F` format specifier not consumed, causing variadic argument desynchronization
Summary docs/libcurl/curlmprintf.md documents %F as a conversion that consumes a double, alongside %f. However, parseconversion in lib/mprintf.c has no F case — it falls through to the default branch and returns without assigning an input slot. In a sequential format like "%F%s", the %s conversio...
curl: 22: FTP wildcard matching decodes server-provided filenames, enabling directory traversal
Summary When CURLOPTWILDCARDMATCH is enabled, libcurl concatenates the server-provided LIST filename directly onto the wildcard path and then URL-decodes the combined string. A filename containing percent-encoded path separators e.g. %2e%2e%2fsecret.txt is decoded into ../secret.txt, causing...
curl: CVE-2026-86409: stale SigV4 headers sent unintended
Summary Setting CURLOPTAWSSIGV4 to NULL returns CURLEOK but does not disable SigV4 authentication. The handler in lib/setopt.c clears the parameter string STRINGAWSSIGV4 but never removes the CURLAUTHAWSSIGV4 bit from data-set.httpauth. A subsequent curleasyperform on the same handle still sends ...
curl: 18: Explicit IPv6 proxy zone ID silently ignored — proxy credentials sent to wrong interface
Explicit IPv6 proxy zone ID silently ignored — proxy credentials sent to wrong interface Summary When a proxy is configured with a literal link-local IPv6 address and an explicit zone ID e.g. http://fe80::1%25eth0:8080, curl parses and stores the zone correctly but never applies it to the socket...
curl: 11: `CURLOPT_FORBID_REUSE` silently lost on multiplexed HTTP/2 connection when the forbidding transfer finishes first
Summary When HTTP/2 transfers share a multiplexed connection, CURLOPTFORBIDREUSE set by a transfer that completes before the other active streams is silently discarded. The connection survives into the idle pool and can be reused by a subsequent transfer. This breaks the mitigation documented in...
curl: 08: CVE-2026-7009 fix incomplete for AWS-LC: `--cert-status` bypass on SecTrust path
Summary The fix for CVE-2026-7009 commit 51905671e0 does not cover AWS-LC. In osslappleverify in lib/vtls/openssl.c, a missing OCSP staple is detected only when SSLgettlsextstatusocspresp returns a negative length. OpenSSL returns -1 for absence, but AWS-LC returns 0 with a NULL output pointer. O...
curl: 07: GnuTLS 0-RTT early data bypasses file-backed public-key pin verification
GnuTLS 0-RTT early data bypasses file-backed public-key pin verification Summary When CURLSSLOPTEARLYDATA is enabled and CURLOPTPINNEDPUBLICKEY references a file path, replacing that file's contents between connections does not invalidate the TLS session cache. On the next connection, curl sends...
curl: 06: Incomplete fix for CVE-2026-7009: GCC/SecTrust builds silently discard stapled OCSP responses
Summary Curlvtlsappleverify in lib/vtls/apple.c passes the stapled OCSP response to SecTrustSetOCSPResponse only when both HAVEBUILTINAVAILABLE and SUPPORTSSecOCSP are defined. When HAVEBUILTINAVAILABLE is absent, the OCSP buffer is silently discarded. GCC does not support builtinavailable, so th...
curl: CVE-2026-82208: wolfSSL CA-cache hit overrides callback
Summary With the wolfSSL backend, when CA caching is enabled and an CURLOPTSSLCTXFUNCTION callback replaces the trust store, curl can silently reinstall the cached store after the callback returns. A certificate trusted by the cached store but rejected by the callback-selected store is then...
Basecamp: Open redirect on app.hey.com bypasses HEY desktop's internal-origin allowlist and loads attacker content inside a HEY BrowserWindow
A case-sensitive URL scheme comparison flaw in the proxy image endpoint allowed open redirects on the mail service's web domain. The endpoint failed to recognize uppercase HTTPS scheme variants and redirected users to unproxied URLs instead of properly proxying them. When combined with the deskto...