GitHub Advisoryadvisory · crates.io

GHSA-pqpw-89w5-82v5 `simd-json-derive` vulnerable to `MaybeUninit` misuse

MEDIUM Published 2024-11-12 Modified 2024-11-12 Official page ↗
Ecosystem
crates.io
Packages
simd-json-derive
Severity
Moderate
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U
Reviewed
2024-11-12

Affected packages

• crates.io simd-json-derive: < 0.12.0 → fixed in 0.12.0

Description

An invalid use of `MaybeUninit::uninit().assume_init()` in `simd-json-derive`'s derive macro can cause undefined behavior. The original code used `MaybeUninit` to avoid initialisation of the struct and then set the fields using `ptr::write`. The undefined behavior triggered by this misuse of `MaybeUninit` can lead to invlaid memory access and panics in binaries compiled in release mode (aka simd-json-derive prior to version 0.12 has UB and optimizes into some nonsense) The version `0.12.0` removes this section of code, avoiding the use of MaybeUninit alltogether.

References