CVE-2018-25023
Use of Uninitialized Resource in smallvec
CVE-2018-25023 is a high vulnerability (CVSS 7.5) in Servo Smallvec, published September 25, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.42%, the 73rd percentile. Fixed in smallvec 0.6.13.
- Severity
- 7.5 HighCVSS 3.1, NVD
- Exploit chance
- 1.42%EPSS, 73rd percentile
- Exploitation
- None knownNot on CISA’s or ENISA’s lists
- Fixed in
0.6.13smallvec +12 more
Description
An issue was discovered in the smallvec crate before 0.6.13 for Rust. It can create an uninitialized value of any type, including a reference type.
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
- High
- Availability
- None
Exploit likelihood
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
smallveccrates.io | before 0.6.13 | 0.6.13 |
rust-smallvecDebian:12 | before 1.1.0-1 | 1.1.0-1 |
rust-smallvecDebian:13 | before 1.1.0-1 | 1.1.0-1 |
rust-smallvecDebian:14 | before 1.1.0-1 | 1.1.0-1 |
smallveccrates.io | 0.0.0-0 up to 0.6.13 | 0.6.13 |
rust-smallvecUbuntu:20.04:LTS | All versions, plus listed versions 0.6.10-11.1.0-1 | None known |
rust-smallvecUbuntu:22.04:LTS | All versions, plus listed versions 1.4.2-21.7.0-1 | None known |
rust-smallvecUbuntu:24.04:LTS | All versions, plus listed versions 1.11.0-11.11.2-1 | None known |
rust-smallvecUbuntu:25.10 | All versions, plus listed versions 1.13.2-1 | None known |
rust-smallvecUbuntu:26.10 | All versions, plus listed versions 1.15.1-11.15.2-1 | None known |
rust-smallvecUbuntu:26.04:LTS | All versions, plus listed versions 1.13.2-11.15.1-1 | None known |
cargo-copenSUSE:Tumbleweed From an advisory covering 2 CVEs | before 0.8.1~git0.cce1b08-2.1 | 0.8.1~git0.cce1b08-2.1 |
zram-generatoropenSUSE:Tumbleweed From an advisory covering 2 CVEs | before 1.1.1~git5.8612dbb-1.1 | 1.1.1~git5.8612dbb-1.1 |
What each source reports
NVD Score used 7.5
An issue was discovered in the smallvec crate before 0.6.13 for Rust. It can create an uninitialized value of any type, including a reference type.
- Record
CVE-2018-25023- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:P/A:N - Weakness
- CWE-908
- Updated
- 2026-11-02
CVE ListNo score
An issue was discovered in the smallvec crate before 0.6.13 for Rust. It can create an uninitialized value of any type, including a reference type.
- Record
CVE-2018-25023- Updated
- 2026-11-02
EUVDEUVD-2022-0458No score
An issue was discovered in the smallvec crate before 0.6.13 for Rust. It can create an uninitialized value of any type, including a reference type.
- Record
EUVD-2022-0458- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-55m5-whcv-c49c 7.5
Use of Uninitialized Resource in smallvec
Affected versions of this crate called mem::uninitialized() to create values of a user-supplied type T. This is unsound e.g. if T is a reference type (which must be non-null and thus may not remain uninitialized). The flaw was corrected by avoiding the use of mem::uninitialized(), using MaybeUninit instead.
- Record
GHSA-55m5-whcv-c49c- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-908
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-66p5-j55p-32r9No score
smallvec creates uninitialized value of any type
Affected versions of this crate called mem::uninitialized() to create values of a user-supplied type T.
This is unsound e.g. if T is a reference type (which must be non-null and thus may not remain uninitialized).
The flaw was corrected by avoiding the use of mem::uninitialized(), using MaybeUninit instead.
- Record
GHSA-66p5-j55p-32r9- Weakness
- CWE-457
- Updated
- 2026-11-02
OSV 7.5
An issue was discovered in the smallvec crate before 0.6.13 for Rust. It can create an uninitialized value of any type, including a reference type.
- Record
CVE-2018-25023- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-08
Show 8 moreShow less
OSVDEBIAN-CVE-2018-25023 7.5
An issue was discovered in the smallvec crate before 0.6.13 for Rust. It can create an uninitialized value of any type, including a reference type.
- Record
DEBIAN-CVE-2018-25023- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVGHSA-55m5-whcv-c49c 7.5
Use of Uninitialized Resource in smallvec
Affected versions of this crate called mem::uninitialized() to create values of a user-supplied type T. This is unsound e.g. if T is a reference type (which must be non-null and thus may not remain uninitialized). The flaw was corrected by avoiding the use of mem::uninitialized(), using MaybeUninit instead.
- Record
GHSA-55m5-whcv-c49c- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-908
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2018-25023 7.5
An issue was discovered in the smallvec crate before 0.6.13 for Rust. It can create an uninitialized value of any type, including a reference type.
- Record
UBUNTU-CVE-2018-25023- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVGHSA-66p5-j55p-32r9No score
smallvec creates uninitialized value of any type
Affected versions of this crate called mem::uninitialized() to create values of a user-supplied type T.
This is unsound e.g. if T is a reference type (which must be non-null and thus may not remain uninitialized).
The flaw was corrected by avoiding the use of mem::uninitialized(), using MaybeUninit instead.
- Record
GHSA-66p5-j55p-32r9- Weakness
- CWE-457
- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11720-1No score
cargo-c-0.8.1~git0.cce1b08-2.1 on GA media
These are all security issues fixed in the cargo-c-0.8.1~git0.cce1b08-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11720-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11721-1No score
librav1e0-0.5.1+0-2.1 on GA media
These are all security issues fixed in the librav1e0-0.5.1+0-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11721-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11729-1No score
zram-generator-1.1.1~git5.8612dbb-1.1 on GA media
These are all security issues fixed in the zram-generator-1.1.1~git5.8612dbb-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11729-1- Updated
- 2026-11-02
OSVRUSTSEC-2018-0018No score
smallvec creates uninitialized value of any type
Affected versions of this crate called mem::uninitialized() to create values of a user-supplied type T.
This is unsound e.g. if T is a reference type (which must be non-null and thus may not remain uninitialized).
The flaw was corrected by avoiding the use of mem::uninitialized(), using MaybeUninit instead.
- Record
RUSTSEC-2018-0018- Updated
- 2026-11-02
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.
References
rustsec.org/advisories/RUSTSEC-2018-0018.html
raw.githubusercontent.com/rustsec/advisory-db/main/crates/smallvec/RUSTSEC-2018-0018.md
github.com/servo/rust-smallvec/commit/e64afc8c473d43e375ab42bd33db2d0d4ac4e41b
nvd.nist.gov/vuln/detail/CVE-2018-25023
github.com/servo/rust-smallvec/issues/126
github.com/servo/rust-smallvec/pull/162
Show 9 moreShow less
github.com/advisories/GHSA-55m5-whcv-c49c
github.com/advisories/GHSA-66p5-j55p-32r9
security-tracker.debian.org/tracker/CVE-2018-25023
github.com/servo/rust-smallvec
crates.io/crates/smallvec
ubuntu.com/security/CVE-2018-25023
cve.org/CVERecord?id=CVE-2018-25023
suse.com/security/cve/CVE-2018-25023
suse.com/security/cve/CVE-2021-45710