libcurl contains a heap use after free flaw in code related to closing an easy handle.
When closing and cleaning up an "easy" handle in the Curl_close()
function,
the library code first frees a struct (without clearing the pointer) and might
then subsequently erroneously write to a struct field within that already
freed struct.
{ "CWE": { "id": "CWE-416", "desc": "Use After Free" }, "package": "curl", "www": "https://curl.se/docs/CVE-2018-16840.html", "affects": "both", "severity": "Low", "award": { "currency": "USD", "amount": "100" }, "URL": "https://curl.se/docs/CVE-2018-16840.json", "last_affected": "7.61.1" }
{ "vanir_signatures": [ { "source": "https://github.com/curl/curl.git/commit/81d135d67155c5295b1033679c606165d4e28f3f", "target": { "file": "lib/url.c" }, "digest": { "threshold": 0.9, "line_hashes": [ "76450436232552618053190577593466383274", "56283251733270634435040735386618773715", "225146506795074944162099681821124504277", "72162716836877692358628916813877661635", "28202728034268574745574819732142521908" ] }, "deprecated": false, "signature_version": "v1", "id": "CURL-CVE-2018-16840-a87c499d", "signature_type": "Line" }, { "source": "https://github.com/curl/curl.git/commit/81d135d67155c5295b1033679c606165d4e28f3f", "target": { "file": "lib/url.c", "function": "Curl_close" }, "digest": { "length": 1388.0, "function_hash": "253867143457341161698845574111827314122" }, "deprecated": false, "signature_version": "v1", "id": "CURL-CVE-2018-16840-ba2aaffc", "signature_type": "Function" } ] }