Miggo Logo

CVE-2020-36434: Double free in sys-info

9.8

CVSS Score
3.1

Basic Information

EPSS Score
0.61972%
Published
8/25/2021
Updated
6/13/2023
KEV Status
No
Technology
TechnologyRust

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
sys-inforust< 0.8.00.8.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from the use of a static global variable (DFhashvector) in C code. DFCleanup() directly frees this global list without thread safety, causing double-frees when multiple threads invoke sys_info::disk_info(). get_disk_info() is the parent function that triggers DFCleanup(), making both functions critical to the vulnerability. The Rust function sys_info::disk_info() is the entry point but delegates to these unsafe C functions.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

*****t** v*rsions o* sys-in*o us* * st*ti*, *lo**l, list to stor* t*mpor*ry *isk in*orm*tion w*il* runnin*. T** *un*tion t**t *l**ns up t*is list, ***l**nup, *ssum*s * sin*l* t*r***** *nvironm*nt *n* will try to *r** t** s*m* m*mory twi** in * multit

Reasoning

T** vuln*r**ility st*ms *rom t** us* o* * st*ti* *lo**l v*ri**l* (****s*v**tor) in * *o**. ***l**nup() *ir**tly *r**s t*is *lo**l list wit*out t*r*** s***ty, **usin* *ou*l*-*r**s w**n multipl* t*r***s invok* sys_in*o::*isk_in*o(). **t_*isk_in*o() is