curl does not parse the authority component of the URL correctly when the host
name part ends with a hash (#
) character, and could instead be tricked into
connecting to a different host. This may have security implications if you for
example use a URL parser that follows the RFC to check for allowed domains
before using curl to request them.
Passing in http://example.com#@evil.com/x.txt
would wrongly make curl send a
request to evil.com while your browser would connect to example.com given the
same URL.
The problem exists for most protocol schemes.
{ "last_affected": "7.50.3", "CWE": { "desc": "Encoding Error", "id": "CWE-172" }, "URL": "https://curl.se/docs/CVE-2016-8624.json", "www": "https://curl.se/docs/CVE-2016-8624.html", "package": "curl", "severity": "Medium", "affects": "both" }
{ "vanir_signatures": [ { "signature_type": "Function", "target": { "file": "lib/url.c", "function": "parseurlandfillconn" }, "id": "CURL-CVE-2016-8624-21dabb6c", "digest": { "length": 5303.0, "function_hash": "192314251346490770842994228226152588855" }, "source": "https://github.com/curl/curl.git/commit/3bb273db7e40ebc284cff45f3ce3f0475c8339c2", "deprecated": false, "signature_version": "v1" }, { "signature_type": "Line", "target": { "file": "lib/url.c" }, "id": "CURL-CVE-2016-8624-e5a561b6", "digest": { "threshold": 0.9, "line_hashes": [ "167794969187132834335283326240322298758", "2145756531567107512094677782452244826", "323747900718285867694470904862247761631", "72199516645593183555100184296947424249", "103006003645429430163277688968008968563", "175770485043618483373585366884754774864", "129035539822800012486235675867282881458", "185182450701402718154549178776349809532", "70106979273968636074962406029356647628", "56254145538747740195693065556051579026", "168788442069164588453201833074777156037", "170526936898557974342460186685632420595" ] }, "source": "https://github.com/curl/curl.git/commit/3bb273db7e40ebc284cff45f3ce3f0475c8339c2", "deprecated": false, "signature_version": "v1" } ] }