OSV ID
MAL-2026-17866
Ecosystem
pypi
Summary
The package advertises itself as a 'cryptographic modules' library (README references pyyi.generate_key() / pyyi.encrypt()) but ships none of that API — __init__.py only defines __version__. The real payload is a console_scripts entry registered as the literal name python3.7, which on PATH shadows the user's real Python 3.7 interpreter and is also written to /usr/local/bin/python3.7, ~/.local/bin/python3.7, and %LOCALAPPDATA%\...\python3.7.exe. When invoked, the CLI resolves an obfuscated destination (base64 ciphertext XORed with a 16-byte hex key, stored in _ENC_NET and decoded only at runtime by _baked_hosts), POSTs to <server>/api/update, and if a payload field is returned, base64-decodes and gzip-decompresses it and runs exec(compile(src, '<adv>', 'exec'), g); g['main'](argv) with no pinning, signature, or hash check — the remote operator chooses what Python code runs on the host. The CLI also stands up a fake REPL (_GateConsole) that reproduces the real Python {sys.version} on {sys.platform} banner and reads input with terminal echo disabled via _quiet_read; single-token entries are treated as candidate passwords and POSTed as {apiKey, password} to the same obfuscated endpoint (op=2), with accepted values persisted locally XORed by a per-machine key. The combination of a cover-story package description, interpreter impersonation on PATH, obfuscated C2 destination, unauthenticated in-memory exec of server-supplied code, and an echo-off password-capturing fake REPL constitutes installer-side remote code execution and credential theft.
Source: amazon-inspector (9cf00d6eaf64906d3dc7feaf25f521d20d150832a04df89ecde5c667a4ac3d2d)
Protect your entire dependency tree
Scan your lock files automatically on every PR. Block malicious packages before they reach production.