RUSTSEC-2026-0129
Buffer overflow in `Clusterings::from_i32_column_major_order()`
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.
What each source reports
OSV No score
Buffer overflow in `Clusterings::from_i32_column_major_order()`
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.
- Record
RUSTSEC-2026-0129- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
dahl-salsocrates.io |
0.0.0-0 up to 0.6.8 | 0.6.8 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
RUSTSEC-2026-0129 is a vulnerability with no CVSS score yet in dahl-salso, published May 2, 2026. No source lists public exploit code. Fixed in dahl-salso 0.6.8.