RUSTSEC-2026-0129 Buffer overflow in `Clusterings::from_i32_column_major_order()`

Not scored Published

A buffer overflow in the Rust clustering library allows attackers to cause memory corruption or crashes via safe API calls with mismatched input lengths.

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

What is RUSTSEC-2026-0129?

RUSTSEC-2026-0129 is a memory corruption vulnerability in dahl-salso, published on 2 May 2026.

Official description

The from_i32_column_major_order method can create inconsistent internal state. When labels length and n_items mismatch, n_clusterings becomes labels.len() / n_items (truncated), but subsequent calls to label() use indices that exceed the internal data bounds, causing a buffer overflow.

For example, Clusterings::from_i32_column_major_order(&[1,2,3,4,5], 3) creates clusterings with n_clusterings = 5/3 = 1. Then clusterings.label(1, 0) accesses index 1*3 = 3, but only 3 elements exist (indices 0,1,2), causing out-of-bounds access.

This can be triggered through safe public APIs — from_i32_column_major_order() and label() — with no unsafe required from the caller.

Which versions are affected by RUSTSEC-2026-0129?

1 open source package ship an affected version, including dahl-salso.

PackageAffectedFixed in
dahl-salso crates.ioFrom 0.0.0-00.6.8

How do I fix RUSTSEC-2026-0129?

Upgrade dahl-salso to 0.6.8 or later.

Upgrade to the fixed version. Memory-safe languages, compiler hardening and fuzzing prevent most new cases. More about Memory corruption.

Is RUSTSEC-2026-0129 being exploited?

There is no known exploitation of RUSTSEC-2026-0129 in the wild and no public exploit code.

Sources

Is RUSTSEC-2026-0129 in your software?

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

Check your SBOMs for free