CVE-2018-1000120 — Vulnerability in curl — CVE Details
CRITICAL
curl FTP path confusion leads to NIL byte out of bounds write
Published May 14, 2022Updated March 12, 2024Source: osv
Summary
curl can be coerced into writing a zero byte out of bounds.
This bug can trigger when curl is told to work on an FTP URL, with the setting to only issue a single CWD command (--ftp-method singlecwd or the libcurl alternative [CURLOPT_FTP_FILEMETHOD](https://curl.se/libcurl/c/CURLOPT_FTP_FILEMETHOD.html)).
curl then URL-decodes the given path, calls strlen() on the result and deducts the length of the file name part to find the end of the directory within the buffer. It then writes a zero byte on that index, in a buffer allocated on the heap.
If the directory part of the URL contains a `%00` sequence, the directory length might end up shorter than the file name path, making the calculation `size_t index = directory_len - filepart_len` end up with a huge index variable for where the zero byte gets stored: `heap_buffer[index] = 0`. On several architectures that huge index will wrap and work as a negative value, thus overwriting memory before the intended heap buffer.
By using different file part lengths and putting the string `%00` in different places in the URL, an attacker that can control what paths a curl-using application uses can write that zero byte on different indexes.
Advisory Timeline
- First published May 14, 2022 (1612 days ago).
- Last revised March 12, 2024 — 668 days after initial publication.
Affected Packages (1)
Affects 1 ecosystem: nuget (1).
| Package | Ecosystem | Affected | Fixed In |
|---|---|---|---|
| curl | nuget | 7.30.0.1, 7.30.0.2 | Range-based data available |
Vulnerability Classification
Common Weakness Enumeration (CWE) identifiers for this vulnerability type.
- CWE-787Out-of-bounds WriteMITRE
CVSS Score Breakdown
What the CVSS (Common Vulnerability Scoring System) 9.8 score means for each attack dimension.
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
References
- https://nvd.nist.gov/vuln/detail/CVE-2018-1000120ADVISORY
- https://www.oracle.com/technetwork/security-advisory/cpuoct2019-5072832.htmlWEB
- https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.htmlWEB
- https://www.oracle.com/technetwork/security-advisory/cpujan2019-5072801.htmlWEB
- https://www.debian.org/security/2018/dsa-4136WEB
- https://web.archive.org/web/20201220134609/http://www.securityfocus.com/bid/103414WEB
- https://web.archive.org/web/20201220134105/http://www.securitytracker.com/id/1040531WEB
- https://usn.ubuntu.com/3598-2WEB
- https://usn.ubuntu.com/3598-1WEB
- https://lists.debian.org/debian-lts-announce/2018/03/msg00012.htmlWEB
- https://github.com/coapp-packages/curlPACKAGE
- https://curl.se/docs/CVE-2018-1000120.htmlWEB
- https://curl.haxx.se/docs/adv_2018-9cd6.htmlWEB
- https://access.redhat.com/errata/RHSA-2020:0594WEB
- https://access.redhat.com/errata/RHSA-2020:0544WEB
- https://access.redhat.com/errata/RHSA-2019:1543WEB
- https://access.redhat.com/errata/RHSA-2018:3558WEB
- https://access.redhat.com/errata/RHSA-2018:3157WEB
- https://access.redhat.com/errata/RHBA-2019:0327WEB
- https://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.htmlWEB
- https://www.oracle.com/technetwork/security-advisory/cpuoct2018-4428296.htmlWEB
Frequently Asked Questions
- What is CVE-2018-1000120?
- curl FTP path confusion leads to NIL byte out of bounds write This vulnerability has been assigned a severity rating of CRITICAL (CVSS score: 9.8/10).
- How do I check if my project is affected by CVE-2018-1000120?
- CVE-2018-1000120 affects curl. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2018-1000120 and 200,000+ other known vulnerabilities.
Severity & Exploitability
CVSS Score
9.8
Exploitation is straightforward and causes maximum impact. Patch immediately.
Also Known As
GHSA-674j-7m97-j2p9
CURL-CVE-2018-1000120
Related CVEs
- CVE-2026-75513CRITICAL
Marten's LINQ provider has SQL injection via unescaped string literals
- CVE-2026-105794CRITICAL
MsQuic: Improper Certificate Validation in Microsoft.Native.Quic.MsQuic.OpenSSL
Check if you're affected
Scan your dependencies to see if this vulnerability affects your projects.
Scan Your Dependencies