Miggo Logo

GHSA-gg76-hg3v-5q6c: macroquad vulnerable to multiple soundness issues

N/A

CVSS Score

Basic Information

CVE ID
-
EPSS Score
-
Published
5/15/2025
Updated
5/15/2025
KEV Status
No
Technology
TechnologyRust

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
macroquadrust<= 0.4.14

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The identified vulnerable functions are based on the analysis of multiple GitHub issues (#333, #634, #723, #746) and the RustSec advisory RUSTSEC-2025-0035. No patched versions are available, so the analysis relies entirely on the descriptions of unsound behavior in these reports. The primary theme of the vulnerabilities is the unprincipled use of mutable static variables (primarily through macroquad::get_context), which leads to potential aliasing of mutable references and subsequent undefined behavior in functions like touch_event and Coroutine::poll. Other vulnerabilities stem from API designs that allow safe code to trigger undefined behavior, such as the public mutable fields of macroquad::texture::Image (leading to issues with Image::empty and Image::get_image_data) and the provision of references to uninitialized memory in macroquad::tweens::linear. The file paths are derived from the issue descriptions and standard Rust project structure conventions for the respective modules (e.g., macroquad::texture::Image implies src/texture.rs). Confidence is high for these functions as the issues provide specific code examples and explanations of the unsoundness.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

S*v*r*l soun*n*ss issu*s **v* ***n r*port**. R*solvin* t**m *o*sn't s**m to ** *onsi**r** * priority. In p*rti*ul*r, unprin*ipl** us* o* mut**l* st*ti*s is p*rv*siv* t*rou**out t** li*r*ry, m*kin* it possi*l* to **us* us*-**t*r-*r** in s*** *o**. *u

Reasoning

T** i**nti*i** vuln*r**l* *un*tions *r* **s** on t** *n*lysis o* multipl* *it*u* issu*s (#***, #***, #***, #***) *n* t** RustS** **visory RUSTS**-****-****. No p*t**** v*rsions *r* *v*il**l*, so t** *n*lysis r*li*s *ntir*ly on t** **s*riptions o* uns