CVE-2024-2004
Usage of disabled protocol
Project curl Security Advisory, March 27 2024 - Permalink
VULNERABILITY
When a protocol selection parameter option disables all protocols without adding any then the default set of protocols would remain in the allowed set due to an error in the logic for removing protocols. The below command would perform a request to curl.se with a plaintext protocol which has been explicitly disabled.
curl --proto -all,-http http://curl.se
The flaw is only present if the set of selected protocols disables the entire set of available protocols, in itself a command with no practical use and therefore unlikely to be encountered in real situations. The curl security team has thus assessed this to be low severity bug.
INFO
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2024-2004 to this issue.
CWE-115: Misinterpretation of Input
Severity: Low
AFFECTED VERSIONS
- Affected versions: curl 7.85.0 to and including 8.6.0
- Not affected versions: curl < 7.85.0 and >= 8.7.0
- Introduced-in: https://github.com/curl/curl/commit/e6f8445edef8e7996d1
libcurl is used by many applications, but not always advertised as such!
This flaw is also accessible using the curl command line tool.
SOLUTION
Starting in curl 8.7.0, the set of allowed protocols is cleared before the set of disabled protocols is inspected, leaving all protocols disabled even in the error path.
RECOMMENDATIONS
A - Upgrade curl to version 8.7.0
B - Apply the patch to your local version
C - Inspect any scripts which constructs curl commands with
--proto
options to make sure there is at least one allowed
protocol
TIMELINE
This issue was reported to the curl project on February 15, 2024. We contacted distros@openwall on March 19, 2024.
curl 8.7.0 was released on March 27 2024 around 07:00 UTC, coordinated with the publication of this advisory.
The curl security team is not aware of any active exploits using this vulnerability.
CREDITS
- Reported-by: Dan Fandrich
- Patched-by: Daniel Gustafsson
Thanks a lot!