RUSTSEC-2026-0197 `Matrix{2,3,4}::swap_columns` can trigger undefined behavior for identical indices

Not scored Published

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.

PackageAffectedFixed in
cgmath crates.ioFrom 0.0.0-0None

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.

Sources

Is RUSTSEC-2026-0197 in your software?

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

Check your SBOMs for free