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.
{
"affects": "both",
"package": "curl",
"CWE": {
"desc": "Encoding Error",
"id": "CWE-172"
},
"last_affected": "7.50.3",
"www": "https://curl.se/docs/CVE-2016-8624.html",
"severity": "Medium",
"URL": "https://curl.se/docs/CVE-2016-8624.json"
}[
{
"signature_type": "Function",
"source": "https://github.com/curl/curl.git/commit/3bb273db7e40ebc284cff45f3ce3f0475c8339c2",
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "192314251346490770842994228226152588855",
"length": 5303.0
},
"id": "CURL-CVE-2016-8624-21dabb6c",
"target": {
"function": "parseurlandfillconn",
"file": "lib/url.c"
}
},
{
"signature_type": "Line",
"source": "https://github.com/curl/curl.git/commit/3bb273db7e40ebc284cff45f3ce3f0475c8339c2",
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"167794969187132834335283326240322298758",
"2145756531567107512094677782452244826",
"323747900718285867694470904862247761631",
"72199516645593183555100184296947424249",
"103006003645429430163277688968008968563",
"175770485043618483373585366884754774864",
"129035539822800012486235675867282881458",
"185182450701402718154549178776349809532",
"70106979273968636074962406029356647628",
"56254145538747740195693065556051579026",
"168788442069164588453201833074777156037",
"170526936898557974342460186685632420595"
]
},
"id": "CURL-CVE-2016-8624-e5a561b6",
"target": {
"file": "lib/url.c"
}
}
]