libcurl contains an out bounds read in code handling HTTP/2 trailers.
It was reported that reading an HTTP/2 trailer could mess up future trailers since the stored size was one byte less than required.
The problem is that the code that creates HTTP/1-like headers from the HTTP/2
trailer data once appended a string like ":"
to the target buffer, while
this was recently changed to ": "
(a space was added after the colon) but
the associated math was not updated correspondingly.
When accessed, the data is read out of bounds and causes either a crash or that the (too large) data gets passed to the libcurl callback. This might lead to a denial-of-service situation or an information disclosure if someone has a service that echoes back or uses the trailers for something.
{ "last_affected": "7.57.0", "package": "curl", "www": "https://curl.se/docs/CVE-2018-1000005.html", "severity": "Low", "CWE": { "desc": "Buffer Over-read", "id": "CWE-126" }, "URL": "https://curl.se/docs/CVE-2018-1000005.json", "affects": "both" }
{ "vanir_signatures": [ { "digest": { "threshold": 0.9, "line_hashes": [ "282594126888140028228277749074138099553", "40991569800935917858892231272272988584", "95792618963566449240292544714322976924", "197448932819711430286793144722352352410" ] }, "signature_type": "Line", "source": "https://github.com/curl/curl.git/commit/fa3dbb9a147488a2943bda809c66fc497efe06cb", "signature_version": "v1", "target": { "file": "lib/http2.c" }, "deprecated": false, "id": "CURL-CVE-2018-1000005-71fc75cd" }, { "digest": { "function_hash": "67385459130250674587968461156705047700", "length": 2561.0 }, "signature_type": "Function", "source": "https://github.com/curl/curl.git/commit/fa3dbb9a147488a2943bda809c66fc497efe06cb", "signature_version": "v1", "target": { "file": "lib/http2.c", "function": "on_header" }, "deprecated": false, "id": "CURL-CVE-2018-1000005-d7fb97d0" } ] }