1312424 matches found
curl: Use-after-free of the internal multi->admin easy handle via the documented CURLMOPT_NOTIFYFUNCTION callback
Summary: curlmultiinit creates an internal easy handle multi-admin and marks it state.internal = TRUE lib/multi.c:248. The CURLMOPTNOTIFYFUNCTION callback is handed that internal handle on CURLMNOTIFYINFOREAD lib/multintfy.c:109, and the option documentation invites callbacks to remove and clean ...
curl: Encoded slash traversal in the IPFS/IPNS URL rewrite escapes the configured gateway namespace
curl 8.22.0's IPFS/IPNS CLI rewrite decodes the user path after its first dot-segment cleanup, then places that decoded path after the configured gateway base and /ipfs/ or /ipns/ namespace. An encoded slash can therefore become a structural separator too late for the first cleanup, and the final...
curl: HTTP/1.1 response framing violation and unsafe connection reuse when transfer decoding is disabled
Summary: libcurl can incorrectly reuse an HTTP/1.1 connection after a response containing both Content-Length and a non-chunked Transfer-Encoding when transfer decoding is disabled with CURLOPTHTTPTRANSFERDECODING = 0L --raw behavior. In this state, libcurl can treat Content-Length as the respons...
curl: Out-of-bounds read in curl_formadd when CURLFORM_NAMELENGTH is explicitly 0
Hi all, I've discovered a heap out-of-bounds read in curlformadd that causes libcurl to silently read past a caller-supplied buffer and transmit the leaked contents to the remote server. It's confirmed under ASan and reachable without violating any documented precondition. Impact An application...
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: 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...
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...
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: 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: 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: 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: 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...