curl / Docs / curl CVEs / Usage of disabled protocol
Awarded 540 USD


Usage of disabled protocol

Project curl Security Advisory, March 27 2024 - Permalink


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 with a plaintext protocol which has been explicitly disabled.

curl --proto -all,-http

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.


The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2024-2004 to this issue.

CWE-115: Misinterpretation of Input

Severity: Low


libcurl is used by many applications, but not always advertised as such!

This flaw is also accessible using the curl command line tool.


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.


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


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.


Thanks a lot!