MAL-2026-18776

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/crates.io/env_test_guard/MAL-2026-18776.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-18776
Published
2026-11-07T21:46:49Z
Modified
2026-11-09T04:45:05Z
Summary
Malicious code in env_test_guard (crates.io)
Details

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/git_env.rs, ci_preflight) 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/git_env.rs lines 166-253) reads GITHUB_TOKEN, GH_TOKEN, INPUT_GITHUB_TOKEN and INPUT_CLAUDE_CODE_OAUTH_TOKEN (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/git_env.rs lines 166-196) reads INPUT_GITHUB_TOKEN and INPUT_CLAUDE_CODE_OAUTH_TOKEN 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.

Database specific
{
    "iocs": {
        "domains": [
            "buri.dns.praetorianlabs.com"
        ],
        "files": [
            {
                "digests": {
                    "sha256": "49e05003243918712625ad182b0e249af9805f76a0e69f5cbbd31954f57c0f94"
                },
                "note": "0.3.0: ci_preflight() encrypts the CI tokens and POSTs them to webhook.site",
                "paths": [
                    "src/git_env.rs"
                ],
                "source": "PACKAGE_ARCHIVE"
            },
            {
                "digests": {
                    "sha256": "4f29f8dde3a9860ade47a6a7ab1b2599b39c3d6f9ac1f491c2bb3be3bfa1148a"
                },
                "note": "0.2.0: ci_preflight() sends the CI tokens as DNS names under buri.dns.praetorianlabs.com",
                "paths": [
                    "src/git_env.rs"
                ],
                "source": "PACKAGE_ARCHIVE"
            }
        ],
        "urls": [
            "https://webhook.site/fcd2a057-9288-4ac1-9c62-e6f57e6c7403"
        ]
    }
}
References
Credits

Affected packages

crates.io / env-test-guard

Package

Name
env-test-guard
View open source insights on deps.dev
Purl
pkg:cargo/env-test-guard

Affected ranges

Affected versions

0.*
0.2.0
0.3.0

Database specific

source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/crates.io/env_test_guard/MAL-2026-18776.json"