GitHub Advisoryadvisory · crates.io
GHSA-f95p-4cv5-8w8x linkme fails to ensure slice elements match the slice's declared type
LOW
Official page ↗
- Ecosystem
- crates.io
- Packages
- linkme
- Severity
- Low
- Reviewed
- 2024-12-04
Affected packages
• crates.io linkme: < 0.3.24 → fixed in 0.3.24
Description
Affected versions allow populating a DistributedSlice of T with elements of an arbitrary other type that coerces to T. For example, elements of type `&&str` could end up in a slice of type `[&str]`, since `&&str` coerces to `&str` via a deref coercion.
The flaw was corrected by implementing typechecking for distributed slice elements in such a way that coercion no longer occurs. The element's type must be a subtype of the slice's declared element type.