CVE-2023-38545
CriticalSummary
CVE-2023-38545 is a vulnerability related to heap buffer overflow during the SOCKS5 proxy handshake in curl. The issue arises when curl passes a hostname that is too long to the proxy, leading to incorrect data copying.
Risk Assessment
Exploitation of this vulnerability may lead to unauthorized memory access, threatening the integrity and confidentiality of data in systems using curl.
Recommendation
It is recommended to update curl to the latest version that includes security patches to minimize the risk associated with this vulnerability.
Other vulnerabilities in curl
See all- CVE-2026-94265Unknown
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 containing arbitrary userinfo to force curl to send a freshly minted Kerberos ticket to an untrusted third-party host, effectively bypassing the domain-scoping restrictions normally enforced by the absence of --location-trusted.
- CVE-2026-92390Unknown
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 under --etag-save. This flaw allows an HTTP(S) server to overwrite an existing local file specified in the Content-Disposition header despite the -J non-overwrite constraint.
- CVE-2026-92386Unknown
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 silently aborts parsing prematurely upon encountering the too long line, ignoring all subsequent valid cookies in the file.
- CVE-2026-87866Unknown
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 manipulated validity length field, extracts and matches a different embedded key, incorrectly authorizing the pinned public key.
- CVE-2026-87864Unknown
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 executed as pipelined IMAP commands within the authenticated session.
- CVE-2026-87863Unknown
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 that exceeds calendar time structure bounds. During cache saves, the original HSTS file is truncated before writing a temporary replacement; when serialization fails, the temporary file is deleted, leaving an empty or partial cache, and the save error is silently ignored.
- CVE-2026-87862Unknown
Importing an 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 to HTTPS.
- CVE-2026-87861Unknown
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.
- CVE-2026-86415Unknown
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 redirected to a different origin, even though the code explicitly switched off the auto client cert option for that transfer.
- CVE-2026-86414Unknown
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.
Original NVD description (English source)
This flaw makes curl overflow a heap based buffer in the SOCKS5 proxy handshake. When curl is asked to pass along the host name to the SOCKS5 proxy to allow that to resolve the address instead of it getting done by curl itself, the maximum length that host name can be is 255 bytes. If the host name is detected to be longer, curl switches to local name resolving and instead passes on the resolved address only. Due to this bug, the local variable that means "let the host resolve the name" could get the wrong value during a slow SOCKS5 handshake, and contrary to the intention, copy the too long host name to the target buffer instead of copying just the resolved address there. The target buffer being a heap based buffer, and the host name coming from the URL that curl has been told to operate with.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

