curl can be tricked into copying data beyond end of its heap based buffer.
When asked to transfer an RTSP URL, curl could calculate a wrong data length
to copy from the read buffer. The memcpy() call would copy data from the
heap following the buffer to a storage area that would subsequently be
delivered to the application (if it did not cause a crash). We have managed to
get it to reach several hundreds bytes out of range.
This could lead to information leakage or a denial of service for the application if the server offering the RTSP data can trigger this.
{
"severity": "Medium",
"URL": "https://curl.se/docs/CVE-2018-1000122.json",
"package": "curl",
"last_affected": "7.58.0",
"www": "https://curl.se/docs/CVE-2018-1000122.html",
"CWE": {
"desc": "Buffer Over-read",
"id": "CWE-126"
},
"affects": "both"
}[
{
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "161498815877371629434851987410308038878",
"length": 7977.0
},
"deprecated": false,
"target": {
"file": "lib/transfer.c",
"function": "readwrite_data"
},
"source": "https://github.com/curl/curl.git/commit/d52dc4760f6d9ca1937eefa2093058a952465128",
"id": "CURL-CVE-2018-1000122-b3abb50e"
},
{
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"line_hashes": [
"225307090206503833151540635093094317452",
"290229519799572691106036723336395442631",
"37104245460420581268215469924813140376",
"180905971171888284277329229387145828511",
"163226654129534360720460174640381834241",
"264452607322690180977503567287561379955"
],
"threshold": 0.9
},
"deprecated": false,
"target": {
"file": "lib/transfer.c"
},
"source": "https://github.com/curl/curl.git/commit/d52dc4760f6d9ca1937eefa2093058a952465128",
"id": "CURL-CVE-2018-1000122-c8b5f2ef"
}
]