Releases: dcondrey/unicode-safety-check
Releases · dcondrey/unicode-safety-check
v3.0.0 - Unicode Safety Check
v3.0.0 - Full Rust Rewrite
Complete rewrite from Python to Rust. Faster, safer, and more comprehensive.
Highlights
- 19 detection rules covering bidi attacks, invisible chars, homoglyphs, confusable collisions, mixed-script identifiers, control characters, private use, tag characters, and more
- 87 audit findings fixed across security, correctness, CI hardening, and test coverage
- 150 tests (130 unit + 20 integration) with 100% rule coverage
- Supply chain hardening: SHA256 checksum verification for downloaded binaries, pinned action SHAs, least-privilege CI permissions
Security Fixes
- Script injection prevention in all GitHub Action shell steps
- GITHUB_OUTPUT newline injection protection
- Binary download checksum verification (SHA256SUMS)
- Terminal escape sequence injection prevention in snippet output
- Confusable tracker bypass prevention (LRU eviction)
- Symlink cycle protection with depth limits
- Markdown injection prevention in step summaries
Detection Improvements
- Expanded confusables table: ~206 entries (Cherokee, Math Bold/Italic A-z, fullwidth)
- Expanded script ranges: 71 ranges covering 30+ scripts (Tamil, Telugu, Kannada, Malayalam, Sinhala, Lao, Tibetan, Myanmar, Ethiopic, Cherokee, Khmer, and more)
- SQL
--and HTML<!-- -->comment handling - Raw triple-quoted Python string handling (
r"""...""") - Context-aware policy enforcement (
contexts.comment.bidi-control: ignorenow works) - Bidi pairing detection for orphaned closers before openers
Breaking Changes
- Python source removed; Rust binary only
serde_yamlreplaced withserde_yml--excludepatterns now use fnmatch only (substring fallback removed to prevent false exclusions)
Platforms
| Platform | Binary |
|---|---|
| Linux x86_64 | unicode-safety-check-x86_64-unknown-linux-gnu.tar.gz |
| Linux aarch64 | unicode-safety-check-aarch64-unknown-linux-gnu.tar.gz |
| macOS x86_64 | unicode-safety-check-x86_64-apple-darwin.tar.gz |
| macOS aarch64 | unicode-safety-check-aarch64-apple-darwin.tar.gz |
Verify downloads with SHA256SUMS:
shasum -a 256 -c SHA256SUMS
v2.0.0 - Unicode Safety Check
Full Changelog: v1.0.0...v2.0.0