CVE-2018-1000005
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2...
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.1
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
- Record
CVE-2018-1000005- CVSS 3.0
- 9.1 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - CVSS 2.0
- 6.4 Medium
AV:N/AC:L/Au:N/C:P/I:N/A:P - Weakness
- CWE-125
- Updated
- 2026-11-02
CVE List No score
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
- Record
CVE-2018-1000005- Updated
- 2026-11-02
EUVDEUVD-2018-1777 No score
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
- Record
EUVD-2018-1777- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-cj8j-r7q8-xg4f
9.1
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2...
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
- Record
GHSA-cj8j-r7q8-xg4f- CVSS 3.0
- 9.1 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Weakness
- CWE-125
- Updated
- 2026-11-02
OSVALPINE-CVE-2018-1000005
9.1
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
- Record
ALPINE-CVE-2018-1000005- CVSS 3.0
- 9.1 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSV
9.1
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
- Record
CVE-2018-1000005- CVSS 3.0
- 9.1 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
Show 6 moreShow less
OSVDEBIAN-CVE-2018-1000005
9.1
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
- Record
DEBIAN-CVE-2018-1000005- CVSS 3.0
- 9.1 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2018-1000005
9.1
libcurl 7.49.0 to and including 7.57.0 contains an out bounds read in code handling HTTP/2 trailers. It was reported (https://github.com/curl/curl/pull/2231) 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 following math wasn't 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 client write. This could 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.
- Record
UBUNTU-CVE-2018-1000005- CVSS 3.0
- 9.1 Critical
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H - Updated
- 2026-11-02
OSVCURL-CVE-2018-1000005 No score
HTTP/2 trailer out-of-bounds read
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.
- Record
CURL-CVE-2018-1000005- Updated
- 2026-11-02
OSVMGASA-2018-0110 No score
Updated curl packages fix security vulnerability
It was reported that reading an HTTP/2 trailer could mess up future trailers since the stored size was one byte less than required. 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 (CVE-2018-1000005).
When asked to send custom headers in its HTTP requests, libcurl will send that set of headers first to the host in the initial URL but also, if asked to follow redirects and a 30X HTTP response code is returned, to the host mentioned in URL in the Location: response header value. Sending the same set of headers to subsequest hosts is in particular a problem for applications that pass on custom Authorization: headers, as this header often contains privacy sensitive information or data that could allow others to impersonate the libcurl-using client's request (CVE-2018-1000008).
- Record
MGASA-2018-0110- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10582-1 No score
curl-7.79.1-1.1 on GA media
These are all security issues fixed in the curl-7.79.1-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10582-1- Updated
- 2026-11-02
OSVUSN-3554-1 No score
curl vulnerabilities
It was discovered that curl incorrectly handled certain data. An attacker could possibly use this to cause a denial of service or even to get access to sensitive data. This issue only affected Ubuntu 16.04 LTS and Ubuntu 17.10.
It was discovered that curl could accidentally leak authentication data. An attacker could possibly use this to get access to sensitive information. (CVE-2018-1000007)
- Record
USN-3554-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
curlAlpine:v3.4 |
before 7.58.0-r0 | 7.58.0-r0 |
curlAlpine:v3.5 |
before 7.58.0-r0 | 7.58.0-r0 |
curlAlpine:v3.6 |
before 7.58.0-r0 | 7.58.0-r0 |
curlAlpine:v3.7 |
before 7.58.0-r0 | 7.58.0-r0 |
curlDebian:12 |
before 7.58.0-1 | 7.58.0-1 |
curlDebian:13 |
before 7.58.0-1 | 7.58.0-1 |
curlDebian:14 |
before 7.58.0-1 | 7.58.0-1 |
curlMageia:6 From an advisory covering 2 CVEs |
before 7.54.1-2.5.mga6 | 7.54.1-2.5.mga6 |
curlUbuntu:16.04:LTS |
before 7.47.0-1ubuntu2.6, plus listed versions 7.43.0-1ubuntu27.45.0-1ubuntu17.46.0-1ubuntu17.47.0-1ubuntu17.47.0-1ubuntu2 Show 5 moreShow less7.47.0-1ubuntu2.17.47.0-1ubuntu2.27.47.0-1ubuntu2.37.47.0-1ubuntu2.47.47.0-1ubuntu2.5 |
7.47.0-1ubuntu2.6 |
curlUbuntu:14.04:LTS From an advisory covering 2 CVEs |
before 7.35.0-1ubuntu2.14, plus listed versions 7.32.0-1ubuntu17.33.0-1ubuntu17.34.0-1ubuntu17.35.0-1ubuntu17.35.0-1ubuntu2 Show 12 moreShow less7.35.0-1ubuntu2.17.35.0-1ubuntu2.27.35.0-1ubuntu2.37.35.0-1ubuntu2.57.35.0-1ubuntu2.67.35.0-1ubuntu2.77.35.0-1ubuntu2.87.35.0-1ubuntu2.97.35.0-1ubuntu2.107.35.0-1ubuntu2.117.35.0-1ubuntu2.127.35.0-1ubuntu2.13 |
7.35.0-1ubuntu2.14 |
curlUbuntu:16.04:LTS From an advisory covering 2 CVEs |
before 7.47.0-1ubuntu2.6, plus listed versions 7.43.0-1ubuntu27.45.0-1ubuntu17.46.0-1ubuntu17.47.0-1ubuntu17.47.0-1ubuntu2 Show 5 moreShow less7.47.0-1ubuntu2.17.47.0-1ubuntu2.27.47.0-1ubuntu2.37.47.0-1ubuntu2.47.47.0-1ubuntu2.5 |
7.47.0-1ubuntu2.6 |
curlopenSUSE:Tumbleweed From an advisory covering 48 CVEs |
before 7.79.1-1.1 | 7.79.1-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2018-1000005 is a critical vulnerability (CVSS 9.1) in Haxx Libcurl, published January 24, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 4.56%, the 91st percentile. Fixed in curl 7.58.0-r0.
References
securitytracker.com/id/1040273
usn.ubuntu.com/3554-1
debian.org/security/2018/dsa-4098
curl.haxx.se/docs/adv_2018-824a.html
github.com/curl/curl/pull/2231
access.redhat.com/errata/RHSA-2019:1543
Show 59 moreShow less
nvd.nist.gov/vuln/detail/CVE-2018-1000005
github.com/advisories/GHSA-cj8j-r7q8-xg4f
security.alpinelinux.org/vuln/CVE-2018-1000005
security-tracker.debian.org/tracker/CVE-2018-1000005
advisories.mageia.org/MGASA-2018-0110.html
bugs.mageia.org/show_bug.cgi?id=22445
curl.haxx.se/docs/adv_2018-b3bf.html
ubuntu.com/security/CVE-2018-1000005
ubuntu.com/security/notices/USN-3554-1
cve.org/CVERecord?id=CVE-2018-1000005
ubuntu.com/security/CVE-2018-1000007
suse.com/security/cve/CVE-2006-1061
suse.com/security/cve/CVE-2016-9586
suse.com/security/cve/CVE-2016-9594
suse.com/security/cve/CVE-2017-1000099
suse.com/security/cve/CVE-2017-1000100
suse.com/security/cve/CVE-2017-1000101
suse.com/security/cve/CVE-2017-1000254
suse.com/security/cve/CVE-2017-1000257
suse.com/security/cve/CVE-2017-2629
suse.com/security/cve/CVE-2017-7468
suse.com/security/cve/CVE-2017-8816
suse.com/security/cve/CVE-2017-8817
suse.com/security/cve/CVE-2017-8818
suse.com/security/cve/CVE-2017-9502
suse.com/security/cve/CVE-2018-0500
suse.com/security/cve/CVE-2018-1000005
suse.com/security/cve/CVE-2018-1000120
suse.com/security/cve/CVE-2018-1000122
suse.com/security/cve/CVE-2018-1000300
suse.com/security/cve/CVE-2018-1000301
suse.com/security/cve/CVE-2018-14618
suse.com/security/cve/CVE-2018-16839
suse.com/security/cve/CVE-2018-16840
suse.com/security/cve/CVE-2018-16842
suse.com/security/cve/CVE-2018-16890
suse.com/security/cve/CVE-2019-15601
suse.com/security/cve/CVE-2019-3822
suse.com/security/cve/CVE-2019-3823
suse.com/security/cve/CVE-2019-5435
suse.com/security/cve/CVE-2019-5436
suse.com/security/cve/CVE-2019-5481
suse.com/security/cve/CVE-2019-5482
suse.com/security/cve/CVE-2020-8169
suse.com/security/cve/CVE-2020-8231
suse.com/security/cve/CVE-2020-8284
suse.com/security/cve/CVE-2020-8285
suse.com/security/cve/CVE-2020-8286
suse.com/security/cve/CVE-2021-22297
suse.com/security/cve/CVE-2021-22298
suse.com/security/cve/CVE-2021-22876
suse.com/security/cve/CVE-2021-22890
suse.com/security/cve/CVE-2021-22898
suse.com/security/cve/CVE-2021-22901
suse.com/security/cve/CVE-2021-22922
suse.com/security/cve/CVE-2021-22924
suse.com/security/cve/CVE-2021-22945
suse.com/security/cve/CVE-2021-22946
suse.com/security/cve/CVE-2021-22947