curl might dereference a near-NULL address when getting an LDAP URL.
The function ldap_get_attribute_ber() is called to get attributes, but it
turns out that it can return LDAP_SUCCESS and still return a NULL pointer
in the result pointer when getting a particularly crafted response. This was a
surprise to us and to the code.
libcurl-using applications that allow LDAP URLs, or that allow redirects to LDAP URLs could be made to crash by a malicious server.
{
"URL": "https://curl.se/docs/CVE-2018-1000121.json",
"last_affected": "7.58.0",
"affects": "both",
"www": "https://curl.se/docs/CVE-2018-1000121.html",
"severity": "Low",
"CWE": {
"id": "CWE-476",
"desc": "NULL Pointer Dereference"
},
"package": "curl"
}[
{
"source": "https://github.com/curl/curl.git/commit/9889db043393092e9d4b5a42720bba0b3d58deba",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "ldap_recv",
"file": "lib/openldap.c"
},
"id": "CURL-CVE-2018-1000121-ab1e9bb3",
"signature_type": "Function",
"digest": {
"length": 4592.0,
"function_hash": "328887416578178214306654622421626785268"
}
},
{
"source": "https://github.com/curl/curl.git/commit/9889db043393092e9d4b5a42720bba0b3d58deba",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "lib/openldap.c"
},
"id": "CURL-CVE-2018-1000121-e2a14c76",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"66058308195053059303831184805157800240",
"208522381284363225235985548495567561267",
"180384795194571577937512636606419807899",
"116950588264124085603154233862740494801",
"318624911198468198367229108116250639555",
"238016220396618899894483569339603354701",
"36496125730363765297620715070526551016",
"95658113234756168716412665952919080209",
"187721295413051310410400220050223779294",
"266033551554067307004414137609620697488"
]
}
}
]