Advisory Database
  • Advisories
  • Dependency Scanning
  1. cargo
  2. ›
  3. kvm-ioctls
  4. ›
  5. GHSA-3qx8-rv27-j6gp

GHSA-3qx8-rv27-j6gp: Undefined behaviour in `kvm_ioctls::ioctls::vm::VmFd::create_device`

December 23, 2024

An issue was identified in the VmFd::create_device function, leading to undefined behavior and miscompilations on rustc 1.82.0 and newer due to the function’s violation of Rust’s pointer safety rules.

The function downcasted a mutable reference to its struct kvm_create_device argument to an immutable pointer, and then proceeded to pass this pointer to a mutating system call. Rustc 1.82.0 and newer elides subsequent reads of this structure’s fields, meaning code will not see the value written by the kernel into the fd member. Instead, the code will observe the value that this field was initialized to prior to calling VmFd::create_device (usually, 0).

The issue started in kvm-ioctls 0.1.0 and was fixed in 0.19.1 by correctly using a mutable pointer.

References

  • github.com/advisories/GHSA-3qx8-rv27-j6gp
  • github.com/rust-vmm/kvm-ioctls
  • github.com/rust-vmm/kvm/pull/298
  • rustsec.org/advisories/RUSTSEC-2024-0428.html

Code Behaviors & Features

Detect and mitigate GHSA-3qx8-rv27-j6gp with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 0.19.1

Fixed versions

  • 0.19.1

Solution

Upgrade to version 0.19.1 or above.

Weakness

  • CWE-843: Access of Resource Using Incompatible Type ('Type Confusion')

Source file

cargo/kvm-ioctls/GHSA-3qx8-rv27-j6gp.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Wed, 14 May 2025 12:14:40 +0000.