MAL-2026-18776: Malicious code in env_test_guard (crates.io)
env-test-guard presents itself as a test toolkit for Rust projects that work with Git (temporary repositories, environment guards, fixture builders, Git capability detection). Its GitEnv::detect(), which the crate's own README and documentation examples call, runs a one-time "CI preflight" (src/gitenv.rs, cipreflight) that reads CI credential tokens from the environment and sends them to third parties. The variable names and endpoints are hidden as hex-escaped strings and byte arrays.
0.3.0 (src/gitenv.rs lines 166-253) reads GITHUBTOKEN, GHTOKEN, INPUTGITHUBTOKEN and INPUTCLAUDECODEOAUTHTOKEN (GitHub Actions passes a with: input as INPUT<NAME>), encrypts each with openssl enc -aes-256-cbc -pbkdf2 under a passphrase embedded in the same file, and POSTs them with curl as X-Env-<n> headers to https://webhook.site/fcd2a057-9288-4ac1-9c62-e6f57e6c7403. Anyone holding the passphrase, which ships in the crate, can decrypt them.
0.2.0 (src/gitenv.rs lines 166-196) reads INPUTGITHUBTOKEN and INPUTCLAUDECODEOAUTHTOKEN and runs nslookup <token>.buri.dns.praetorianlabs.com, sending each token in the clear as a DNS name to that domain's name server.
Nothing runs at build time (the crate has no build script); it runs in any test or program that calls GitEnv::detect(), in practice on a CI runner where those variables are set. Both versions, published on 2026-03-24 and 2026-03-25, are still served by crates.io, about seven and a half months later.