RUSTSEC-2026-0197 `Matrix{2,3,4}::swap_columns` can trigger undefined behavior for identical indices
Calling swap_columns with identical indices causes undefined behavior via aliasing violations, potentially leading to crashes or code execution.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Not stated
- Victim action needed
- Not needed
- Fix
- None listed
What is RUSTSEC-2026-0197?
RUSTSEC-2026-0197 is a memory corruption vulnerability in cgmath, published on 11 Mar 2026.
Official description
The Matrix2::swap_columns, Matrix3::swap_columns, and Matrix4::swap_columns
implementations call ptr::swap(&mut self[a], &mut self[b]).
When a == b, these safe APIs create two mutable references to the same matrix
column and pass them to ptr::swap. This violates Rust's aliasing rules and can
trigger undefined behavior. The issue can be reproduced from safe Rust by calling
swap_columns with identical column indices, for example m.swap_columns(0, 0).
A minimal fix is to return early when the two column indices are equal before
calling ptr::swap.
Which versions are affected by RUSTSEC-2026-0197?
1 open source package ship an affected version, including cgmath.
| Package | Affected | Fixed in |
|---|---|---|
cgmath crates.io | From 0.0.0-0 | None |
How do I fix RUSTSEC-2026-0197?
No fix has been published for RUSTSEC-2026-0197 yet. Limit exposure of the affected software until one is available.
Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.
Is RUSTSEC-2026-0197 being exploited?
There is no known exploitation of RUSTSEC-2026-0197 in the wild and no public exploit code.