Miggo Logo

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

N/A

CVSS Score

Basic Information

CVE ID
-
EPSS Score
-
CWE
-
Published
11/12/2024
Updated
11/12/2024
KEV Status
No
Technology
TechnologyRust

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
simd-json-deriverust< 0.12.00.12.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from unsafe usage of MaybeUninit in the derive macro's generated deserialization code. While exact line numbers aren't available, the advisory explicitly states the derive macro used an unsafe pattern of creating MaybeUninit structs, assuming initialization before proper field assignment. This pattern is fundamentally unsound in Rust as it can leave fields uninitialized while claiming initialization, leading to memory safety issues. The confidence is high because: 1) The advisory directly links this pattern to the UB 2) The fix removed MaybeUninit usage entirely 3) The issue manifests in release mode where optimizer assumptions about initialization are stricter.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

*n inv*li* us* o* `M*y**Uninit::uninit().*ssum*_init()` in `sim*-json-**riv*`'s **riv* m**ro **n **us* un***in** ****vior. T** ori*in*l *o** us** `M*y**Uninit` to *voi* initi*lis*tion o* t** stru*t *n* t**n s*t t** *i*l*s usin* `ptr::writ*`. T** un**

Reasoning

T** vuln*r**ility st*ms *rom uns*** us*** o* M*y**Uninit in t** **riv* m**ro's **n*r*t** **s*ri*liz*tion *o**. W*il* *x**t lin* num**rs *r*n't *v*il**l*, t** **visory *xpli*itly st*t*s t** **riv* m**ro us** *n uns*** p*tt*rn o* *r**tin* M*y**Uninit s