Project curl Security Advisory, July 21th 2021 -Permalink
When curl is instructed to download content using the Metalinkfeature, the contents is verified against a hash provided in theMetalink XML file.
The Metalink XML file points out to the client how to get the samecontent from a set of different URLs, potentially hosted by differentservers and the client can then download the file from one or several ofthem. In a serial or parallel manner.
If one of the servers hosting the contents has been breached and thecontents of the specific file on that server is replaced with a modifiedpayload, curl should detect this when the hash of the file mismatchesafter a completed download. It should remove the contents and insteadtry getting the contents from another URL. This is not done, and insteadsuch a hash mismatch is only mentioned in text and the potentiallymalicious content is kept in the file on disk.
There is a risk the user does not notice the message and insteadassumes the file is fine.
This flaw exists only in the curl tool. libcurl is not affected.
The Common Vulnerabilities and Exposures (CVE) project has assignedthe name CVE-2021-22922 to this issue.
CWE-20: Improper Input Validation
Severity: Medium
curl has completely removed the Metalink feature as of7.78.0. No fixfor this flaw is produced by the curl project.
The fix for earlier versions is to rebuild curl with the Metalinksupport switched off!
A - Upgrade curl to version7.78.0
B - Make sure you do not use Metalink with curl
C - Disable Metalink in your build
This issue was reported to the curl project on May 30, 2021.
This advisory was posted on Jul 21, 2021.
Thanks a lot!