Curl Vulnerability (CVE-2023-38545 & CVE-2023-38546) - Data Center Security
search cancel

Curl Vulnerability (CVE-2023-38545 & CVE-2023-38546) - Data Center Security

book

Article ID: 275482

calendar_today

Updated On:

Products

Data Center Security Monitoring Edition Data Center Security Server Data Center Security Server Advanced

Issue/Introduction

CVE-2023-38545 SOCKS5 heap buffer overflow

A heap-based buffer overflow flaw in the SOCKS5 proxy handshake of the Curl package that could lead to arbitrary remote code execution when using SOCKS5 proxies to access untrusted web servers.
Severity: High
Affected versions: Curl and libcurl from 7.69.0 up to and including 8.3.0.

Description: This flaw makes curl overflow a heap based buffer in the SOCKS5
proxy handshake. When curl is asked to pass along the hostname to the SOCKS5 proxy to allow that
to resolve the address instead of it getting done by curl itself, the maximum length
that hostname can be is 255 bytes. If the hostname is detected to be longer than 255 bytes, curl switches to local name resolving and instead passes on the resolved address only to the proxy. Due to a 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 hostname to the target buffer instead of copying just the resolved address there.

CVE-2023-38546 Cookie injection with none file
It is a low severity vulnerability that only impacts libcurl – a library provided by the Curl project that allows developers to access Curl APIs from their own code. 
Severity: Low
Affected versions: libcurl from 7.9.1 up to and including 8.3.0.
Description: This flaw allows an attacker to insert cookies at will into a running program using libcurl, if the specific series of conditions are met. libcurl performs transfers. In its API, an application creates "easy handles" that are the individual handles for single transfers. libcurl provides a function call that duplicates an  easy handle called curl_easy_dup handle. If a transfer has cookies enabled when the handle is duplicated, the cookie-enable state is also cloned - but without cloning the actual cookies. If the source handle did not read any cookies from a specific file on disk, the cloned version of the handle would instead store the file name as none (using the four ASCII letters, no quotes).

Subsequent use of the cloned handle that does not explicitly set a source to load cookies from would then inadvertently load cookies from a file named none - if such a file exists and is readable in the current directory of the program using libcurl. And if using the correct file format of course.

Environment

DCS - All Versions and OS's

Cause

Resolution

The Data Center Security engineering team has confirmed the usage of libcurl, but we do NOT use any of the options that cause SOCKS5 with remote hostname to be used in the curl tool.

CVE-2023-38545 is a heap buffer overflow vulnerability in libcurl versions 7.69.0 to 8.3.0 It affects applications using the libcurl library to connect via SOCKS5 proxy and attempting to resolve a long hostname.
DCS Agent is not built with libcurl SOCKS5 proxy support and hence not susceptible to the curl CVE-2023-38545 in default configuration


CVE-2023-38546 affects libcurl applications that duplicate curl handles.
DCS Agent code does not use the libcurl api for duplicating handles, hence it is not susceptible to this CVE.
Data Center Security (All Versions and OS's) are not open to these vulnerabilities

Additional Information

Note: Latest version of DCS Agent 6.9.3 is now available with the libcurl version 8.4.0

For Linux: DCS Agent 6.9.3.2543

For Windows: DCS Agent 6.9.3.2542