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.
{ "CWE": { "id": "CWE-126", "desc": "Buffer Over-read" }, "package": "curl", "URL": "https://curl.se/docs/CVE-2018-1000005.json", "severity": "Low", "www": "https://curl.se/docs/CVE-2018-1000005.html", "last_affected": "7.57.0" }