Skip to content

Unsoundness in anstream

Moderate severity GitHub Reviewed Published Dec 4, 2024 to the GitHub Advisory Database • Updated Dec 4, 2024

Package

cargo anstream (Rust)

Affected versions

< 0.6.8

Patched versions

0.6.8

Description

When given a valid UTF8 string "ö\x1b😀", the function in crates/anstream/src/adapter/strip.rs will be confused. The UTF8 bytes are \xc3\xb6 then \x1b then \xf0\x9f\x98\x80.

When looping over "non-printable bytes" \x1b\xf0 will be considered as some non-printable sequence.

This will produce a broken str from the incorrectly segmented bytes via str::from_utf8_unchecked, and that should never happen.

Full credit goes to @Ralith who reviewed this code and asked @burakemir to follow up.

References

Published to the GitHub Advisory Database Dec 4, 2024
Reviewed Dec 4, 2024
Last updated Dec 4, 2024

Severity

Moderate

Weaknesses

No CWEs

CVE ID

No known CVE

GHSA ID

GHSA-2rxc-gjrp-vjhx

Source code

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.