GHSA-xw5j-gv2g-mjm2 Miscompilation in cortex-m-rt 0.7.1 and 0.7.2

Not scored Published

A miscompilation in the cortex-m-rt crate causes stack alignment violations, leading to incorrect runtime behavior in embedded applications.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Not stated
Victim action needed
Not needed
Fix
Available

What is GHSA-xw5j-gv2g-mjm2?

GHSA-xw5j-gv2g-mjm2 is a vulnerability in cortex-m-rt, published on 13 Feb 2023.

Official description

Version 0.7.1 of the cortex-m-rt crate introduced a regression causing the stack to NOT be eight-byte aligned prior to calling main (or any other specified entrypoint), violating the stack ABI of AAPCS32, the default ABI used by all Cortex-M targets. This regression is also present in version 0.7.2 of the cortex-m-rt crate.

This regression can cause certain compiler optimizations (which assume the eight-byte alignment) to produce incorrect behavior at runtime. This incorrect behavior has been observed in real-world applications.

It is advised that ALL users of v0.7.1 and v0.7.2 of the cortex-m-rt crate update to the latest version (v0.7.3), AS SOON AS POSSIBLE. Users of v0.7.0 and prior versions of cortex-m-rt are not affected by this regression.

It will be necessary to rebuild all affected firmware binaries, and flash or deploy the new firmware binaries to affected devices.

Which versions are affected by GHSA-xw5j-gv2g-mjm2?

3 open source packages ship an affected version, including cortex-m-rt.

PackageAffectedFixed in
cortex-m-rt crates.ioFrom 0.7.00.7.3
cortex-m-rt crates.ioFrom 0.7.00.7.3
cortex-m-rt crates.ioFrom 0.7.1-00.7.3

How do I fix GHSA-xw5j-gv2g-mjm2?

Upgrade cortex-m-rt to 0.7.3 or later.

Is GHSA-xw5j-gv2g-mjm2 being exploited?

There is no known exploitation of GHSA-xw5j-gv2g-mjm2 in the wild and no public exploit code.

Sources

Also known as RUSTSEC-2023-0014.

Is GHSA-xw5j-gv2g-mjm2 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free