crates.io / unicode-xid / 0.2.6

unicode-xid 0.2.6

Source
https://github.com/unicode-rs/unicode-xid
Tag scanned
v0.2.6
Compared with
v0.2.5 (0 signals introduced since)
Files
7 scanned, 4 skipped (binary, oversized, or unrecognised)
Signals
0 critical · 0 warn · 1 info
Scan time
2.5 s
LLM review
Reviewed by claude-haiku-5-5 (Anthropic): 1 of 1 warn and critical signal; 1 demoted to info.
Disclude version
4.0.0
Scanned (UTC)
2026-10-14 21:22

Signals

Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.

  1. info critical → info by review dynamic-execution scripts/unicode.py:39:9

    `os.system` called on a non-literal command — runtime-determined shell invocation (ast pass, confidence 0.85)

        if not os.path.exists(os.path.basename(f)):
            os.system("curl -O http://www.unicode.org/Public/UNIDATA/%s"
                      % f)
    likely benign LLM, confidence 0.80 A setup script shells out to curl via os.system to fetch Unicode data files from unicode.org when they are absent locally.
    Reasoning

    The snippet is a helper that downloads Unicode Character Database files from unicode.org with curl when they are missing locally. The URL is a well-known, legitimate source, and the surrounding check suggests a setup or data-fetch script. The AST flag is valid: os.system with a %-formatted non-literal string is a shell-injection risk if f is attacker-controlled. That is a code-quality problem, not evidence of malicious intent or obfuscation.

Reproduce This Scan

Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.

cargo install disclude --version 4.0.0
git clone https://github.com/unicode-rs/unicode-xid unicode-xid && cd unicode-xid
git checkout v0.2.6
disclude scan --severity info --diff v0.2.5 .