HistoryEditJSON (OSV)

RUSTSEC-2023-0087

MaybeUninit misuse in simd-json-derive

Reported
Issued
Package
simd-json-derive (crates.io)
Type
INFO Unsound
Keywords
#panic #undefined-behavior
References
Patched
  • >=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 0.12.0 removes this section of code, avoiding the use of MaybeUninit alltogether.

Advisory available under CC0-1.0 license.