CVE-2018-20993
Uncontrolled recursion in rust-yaml
An issue was discovered in the yaml-rust crate before 0.4.1 for Rust. There is uncontrolled recursion during deserialization.
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
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.5
An issue was discovered in the yaml-rust crate before 0.4.1 for Rust. There is uncontrolled recursion during deserialization.
- Record
CVE-2018-20993- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:N/A:P - Weakness
- CWE-674
- Updated
- 2026-11-02
CVE List No score
An issue was discovered in the yaml-rust crate before 0.4.1 for Rust. There is uncontrolled recursion during deserialization.
- Record
CVE-2018-20993- Updated
- 2026-11-02
EUVDEUVD-2021-1760 No score
An issue was discovered in the yaml-rust crate before 0.4.1 for Rust. There is uncontrolled recursion during deserialization.
- Record
EUVD-2021-1760- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-hv87-47h9-jcvq
7.5
Uncontrolled recursion in rust-yaml
Affected versions of this crate did not prevent deep recursion while deserializing data structures. This allows an attacker to make a YAML file with deeply nested structures that causes an abort while deserializing it. The flaw was corrected by checking the recursion depth.
- Record
GHSA-hv87-47h9-jcvq- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
OSV
7.5
An issue was discovered in the yaml-rust crate before 0.4.1 for Rust. There is uncontrolled recursion during deserialization.
- Record
CVE-2018-20993- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVGHSA-hv87-47h9-jcvq
7.5
Uncontrolled recursion in rust-yaml
Affected versions of this crate did not prevent deep recursion while deserializing data structures. This allows an attacker to make a YAML file with deeply nested structures that causes an abort while deserializing it. The flaw was corrected by checking the recursion depth.
- Record
GHSA-hv87-47h9-jcvq- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-674
- Updated
- 2026-11-02
OSVRUSTSEC-2018-0006
7.5
Uncontrolled recursion leads to abort in deserialization
Affected versions of this crate did not prevent deep recursion while deserializing data structures.
This allows an attacker to make a YAML file with deeply nested structures that causes an abort while deserializing it.
The flaw was corrected by checking the recursion depth.
Note: clap 2.33 is not affected by this because it uses yaml-rust
in a way that doesn't trigger the vulnerability. More specifically:
-
The input to the YAML parser is always trusted - is included at compile time via
include_str!. -
The nesting level is never deep enough to trigger the overflow in practice (at most 5).
- Record
RUSTSEC-2018-0006- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2018-20993
7.5
An issue was discovered in the yaml-rust crate before 0.4.1 for Rust. There is uncontrolled recursion during deserialization.
- Record
UBUNTU-CVE-2018-20993- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
yaml-rustcrates.io |
before 0.4.1 | 0.4.1 |
yaml-rustcrates.io |
0.0.0-0 up to 0.4.1 | 0.4.1 |
rust-yaml-rustUbuntu:20.04:LTS |
All versions, plus listed versions 0.4.2-10.4.3-1 |
None known |
rust-yaml-rustUbuntu:22.04:LTS |
All versions, plus listed versions 0.4.3-10.4.5-1 |
None known |
rust-yaml-rustUbuntu:24.04:LTS |
All versions, plus listed versions 0.4.5-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| 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-20993 is a high vulnerability (CVSS 7.5) in Yaml-rust Project Yaml-rust, published September 17, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.41%, the 72nd percentile. Fixed in yaml-rust 0.4.1.
References
rustsec.org/advisories/RUSTSEC-2018-0006.html
nvd.nist.gov/vuln/detail/CVE-2018-20993
github.com/chyh1990/yaml-rust/pull/109
github.com/chyh1990/yaml-rust/commit/d61b49cb90391fc4f7f72a1abe597476c8651a07
github.com/advisories/GHSA-hv87-47h9-jcvq
github.com/chyh1990/yaml-rust
crates.io/crates/yaml-rust
ubuntu.com/security/CVE-2018-20993
cve.org/CVERecord?id=CVE-2018-20993