When curl is instructed to download content using the Metalink feature, the contents is verified against a hash provided in the Metalink XML file.
The Metalink XML file points out to the client how to get the same content from a set of different URLs, potentially hosted by different servers and the client can then download the file from one or several of them. In a serial or parallel manner.
If one of the servers hosting the contents has been breached and the contents of the specific file on that server is replaced with a modified payload, curl should detect this when the hash of the file mismatches after a completed download. It should remove the contents and instead try getting the contents from another URL. This is not done, and instead such a hash mismatch is only mentioned in text and the potentially malicious content is kept in the file on disk.
There is a risk the user does not notice the message and instead assumes the file is fine.
{ "CWE": { "id": "CWE-20", "desc": "Improper Input Validation" }, "award": { "amount": "700", "currency": "USD" }, "URL": "https://curl.se/docs/CVE-2021-22922.json", "package": "curl", "severity": "Medium", "issue": "https://hackerone.com/reports/1213175", "www": "https://curl.se/docs/CVE-2021-22922.html", "last_affected": "7.77.0" }