rust-vmm/linux-loader · Security
linux-loader reading beyond EOF could lead to infinite loop
- GHSA ID
- GHSA-52h2-m2cf-9jh6
- CVE ID
- CVE-2022-23523
- Severity
- low
- Published
- Updated
- CVSS
- 1.9 · CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L
- CVSS v3
- 1.9 · CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L
Description
Impact
The linux-loader crate used the offsets and sizes provided in the ELF headers to determine the offsets to read from. If those offsets pointed beyond the end of the file this could lead to an infinite loop. Virtual Machine Monitors using the linux-loader crate could enter an infinite loop if the ELF header of the kernel they are loading was modified in a malicious manner.
Patches
The issue has been addressed in 0.8.1
Workarounds
The issue can be mitigated by ensuring that only trusted kernel images are loaded or by verifying that the headers to not point beyond the end of the file.
References
CWEs
- CWE-119 · Improper Restriction of Operations within the Bounds of a Memory Buffer
- CWE-125 · Out-of-bounds Read
- CWE-835 · Loop with Unreachable Exit Condition ('Infinite Loop')
References
- https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6 ↗
- https://github.com/rust-vmm/linux-loader/commit/a44f152da4f38c538ed492b1efa8515be2047db2 ↗
- https://nvd.nist.gov/vuln/detail/CVE-2022-23523 ↗
- https://github.com/rust-vmm/linux-loader/pull/125 ↗
- https://github.com/advisories/GHSA-52h2-m2cf-9jh6 ↗