curl / Mailing Lists / curl-users / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

[SECURITY ADVISORY] curl: Wrong content via metalink not discarded

From: Daniel Stenberg via curl-users <curl-users_at_cool.haxx.se>
Date: Wed, 21 Jul 2021 09:13:38 +0200 (CEST)

Wrong content via metalink not discarded
========================================

Project curl Security Advisory, July 21th 2021 -
[Permalink](https://curl.se/docs/CVE-2021-22922.html)

VULNERABILITY
-------------

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's a risk the user doesn't notice the message and instead assumes the
file is fine.

We are not aware of any exploit of this flaw.

INFO
----
This flaw exists only in the curl tool. libcurl is not affected.
This flaw has existed in curl since commit
[b5fdbe848bc3d](https://github.com/curl/curl/commit/b5fdbe848bc3d) in curl
7.27.0, released on July 27, 2012.
The Common Vulnerabilities and Exposures (CVE) project has assigned the name
CVE-2021-22922 to this issue.
CWE-20: Improper Input Validation
Severity: Medium
AFFECTED VERSIONS
-----------------
- Affected versions: curl 7.27.0 to and including 7.77.0
- Not affected versions: curl < 7.27.0 and curl >= 7.78.0
THE SOLUTION
------------
curl has completely removed the metalink feature as of 7.78.0. No fix for this
flaw will be produced by the curl project.
The fix for earlier versions is to rebuild curl with the metalink support
switched off!
RECOMMENDATIONS
--------------
  A - Upgrade curl to version 7.78.0
  B - Make sure you do not use metalink with curl
  C - Disable metalink in your build
TIMELINE
--------
This issue was reported to the curl project on May 30, 2021.
This advisory was posted on Jul 21, 2021.
CREDITS
-------
This issue was reported by Harry Sintonen. Patched by Daniel Stenberg.
Thanks a lot!
-- 
  / daniel.haxx.se
  | Commercial curl support up to 24x7 is available!
  | Private help, bug fixes, support, ports, new features
  | https://www.wolfssl.com/contact/
-----------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-users
Etiquette:   https://curl.haxx.se/mail/etiquette.html
Received on 2021-07-21