What is curl, and which version is vulnerable
The security community and developer alike relies on curl command-line tool used for transferring data with URLs, is an indispensable asset for developers and cybersecurity professionals. Its versatility in supporting various protocols makes it a go-to tool for many. However, like a fortified castle with a hidden weak spot, libcurl and the software itself too has its vulnerabilities. Recently, two notable Common Vulnerabilities and Exposures (CVEs) were identified – CVE-2023-38545 and CVE-2023-38546. The latter, rated as high severity, affects both libcurl and the curl tool, marking a significant security concern. This blog aims to delve into these vulnerabilities and provide a guide on how to ensure your software version or library like libcurl is updated and secure. Please follow the step below and the verification to ensure your vulnerability management program and applications in your application security program are secure.
OCTOBER 11, 2023 DANIEL STENBERG 9 COMMENTS In association with the release of curl 8.4.0, we publish a security advisory and all the details for CVE-2023-38545. This problem is the worst security problem found in curl in a long time. We set it to severity HIGH. While the advisory contains all the necessary details. I figured I would use a few additional words and expand the explanations for anyone who cares to understand how this flaw works and how it happened. Background curl has supported SOCKS5 since August 2002. SOCKS5 is a proxy protocol. It is a rather simple protocol for setting up network communication via a dedicated “middle man”. The protocol is for example typically used when setting up communication to get done over Tor but also for accessing Internet from within organizations and companies.
How to update curl on macOS:
- Homebrew Installation:
- Install the latest version of cURL using Homebrew with the command:
brew install curl
- Override the system default cURL by updating the system path:
echo 'export PATH="/opt/homebrew/opt/curl/bin:$PATH"' >> ~/.zshrc
- Verify the update by opening a new terminal window and executing:
curl --version
- Install the latest version of cURL using Homebrew with the command:
How to update curl on Windows:
- Version Check:
- Open the Command Prompt and enter
curl --version
to check the installed version. - Determine the installation type by running
where curl
.
- Open the Command Prompt and enter
- Windows Update:
- If using the pre-installed version, check for official updates from Microsoft to get the patched version of cURL.
- Using Package Managers:
- Install or update cURL using Winget:
winget install curl.curl
- Or using Chocolatey:
choco install curl
- Install or update cURL using Winget:
- Environment Variables:
- Adjust the PATH environment variables to prioritize the newly installed version.
How to update curl on Linux:
- APT (Debian, Ubuntu):
sudo apt-get update sudo apt-get upgrade curl
- Snap (Primarily Ubuntu):
snap install curl
- DNF (RHEL, Rocky, Fedora):
sudo dnf check-update sudo dnf install curl
- APK (Alpine):
sudo apk update sudo apk add curl
Building cURL from Source:
For users comfortable with building from source, they can download the latest cURL source code and compile it. Here’s an example on an M1 Mac running MacOS Ventura:
Install Xcode command line tools.
Execute the build commands:
codeautoreconf -fi export ARCH=arm64 export SDK=macosx ... make -j8
Verify the build with ./src/.libs/curl --versio
Why this critical vulnerability was controversial
Its disclosure marked a significant moment, stirring discussions in the cybersecurity community. A GitHub discussion led by one of the software maintainer unveiled the upcoming release of the software version 8.4.0 on October 11, aimed at patching this security flaw alongside a low-severity vulnerability, CVE-2023-38546. Although details regarding the affected version range were withheld for security reasons, the announcement serves as a call to action for users to update their Curl version promptly.
In a recent twitter conversation, the curl team has warned teams for the October 11 release but without disclosing additional information on which version is likely to be vulnerable. This to discourage early attacks
Recently curl was in the spotlight due to the erroneous disclosure: maintainers have been vocal about downplaying the risk associated with most vulnerabilities reported against curl
in the past (a recent example is the article CVE-2020-19909 is everything that is wrong with CVEs), nonetheless in this case he warned — adding, “buckle up.”
Detail of the curl vulnerability vulnerability CVE-2023-38545 and CVE-2023-38546
What is the exploitation data behind CVE-2023-38545 and CVE-2023-38546 In the wild
CVSS: 10->4.4
CTI interest: Low
RCE Type Remote: Unknown (potential local authentication)
Availability: No
Status: Undisclosed
EPSS Score: – not registered –
Currently, there are 2673 systems with some version of curl exposed, but considering curl is embedded in every window, mac, linux version and container used like Amazon the spread and surface could be quite vast
How Phoenix Security Can Help
Phoenix Security helps organizations identify and trace which systems have vulnerabilities, understanding the relation between code and cloud. One of the significant challenges in securing applications is knowing where and how frameworks like Struts are used. ASPM tools can scan the application portfolio to identify instances of Struts, mapping out where it is deployed across the organization. This information is crucial for targeted security measures and efficient patch management. Phoenix Security’s robust Application Security Posture Management (ASPM) system is adept at not just managing, but preempting the exploitation of vulnerabilities through its automated identification system. This system prioritises critical vulnerabilities, ensuring that teams can address the most pressing threats first, optimising resource allocation and remediation efforts.
The Role of Application Security Posture Management (ASPM):
ASPM plays a vital role in managing and securing applications like those built with Apache Struts. It involves continuous assessment, monitoring, and improvement of the security posture of applications. ASPM tools can:
- Identify and Track Struts Components: Locate where Struts is implemented within the application infrastructure.
- Vulnerability Management: Detect known vulnerabilities in Struts and prioritize them for remediation.
- Configuration Monitoring: Ensure Struts configurations adhere to best security practices.
- Compliance: Check if the usage of Struts aligns with relevant cybersecurity regulations and standards.
By leveraging Phoenix Security, you not only unravel the potential threats but also take a significant stride in vulnerability management, ensuring your application security remains up to date and focuses on the key vulnerabilities.
Get in control of your Application Security posture and Vulnerability management
Previous Issues of Vulnerability Weekly
- How to update curl and libcurl without panic fixing
- Critical Vulnerabilities in Atlassian Confluence: Zero-Day
- Detect & Mitigate HTTP/2: Rapid Reset Vulnerabilities
- Understanding the libcue Vulnerability CVE-2023
- Understanding and fixing Curl and libcurl
- CVE-2023-3519 Update on Critical RCE in Netscaler ADC (Citrix ADC) and Netscaler Gateway (Citrix Gateway) details on vulnerability timeline and compromise
- MOVEit Transfer breach, Zellis compromise CVE-2023-34362