privacypass-py sends the host's identity and credential environment variables to a hardcoded IP at build and import ×
malicious Covers 0.1.99, 0.1.100 and 0.1.101 Reviewed by Bitbison Updated 2026-11-01
Building, installing or importing privacypass-py 0.1.99 to 0.1.101 sends the hostname, user, command lines and credential-like environment variables (AWS_, GITHUB_, PIP_, *TOKEN*, *SECRET*) to http://85.190.112.236:8881; the package has no other function.
What it does
privacypass-py presents itself as "Privacy Pass client primitives (python)" and ships no cryptographic code. Its setup.py runs a beacon whenever the package is built or installed.
In a build of 0.1.100 and of 0.1.101, every PEP 517 hook process that ran the package's setup.py (get_requires_for_build_wheel and the hooks after it, nine processes in each build) opened a plain TCP connection to 85.190.112.236:8881 and sent data to it. That address belongs to dogado GmbH (AS8648). None of those processes looked a name up first: the address is written into the code.
The package's source, as Amazon Inspector's report to OpenSSF describes it:
What it collects: setup.py's _report() gathers the hostname, the username, the working directory, the command line, the parent process's command line (read from /proc/<ppid>/cmdline), and the names and values of environment variables with credential-like prefixes (AWS_, GITHUB_, PIP_ and others).
Where it sends it: it POSTs that as JSON to http://85.190.112.236:8881/b/<nonce>, over plain HTTP.
On import too: privacypass_py/__init__.py repeats the beacon on every import privacypass_py. It adds CLOUDFLARE_, SUPERTOKENS, HOME, USER and PATH, plus any variable whose name contains KEY, SECRET, TOKEN, PASS, CRED, PRIVATE, SEED, MNEMONIC, SIGNATURE, COOKIE, SESSION or AUTH, and sends it to http://85.190.112.236:8881/f/<nonce>. That path runs outside pip's build isolation.
A build in CI therefore hands whatever cloud, forge and registry tokens are in the environment to a server on a bare IP address.
Timeline
0.1.99 published on PyPI: 2026-11-01 03:11:44 UTC.
0.1.100 published: 2026-11-01 03:12:09 UTC.
0.1.101 published: 2026-11-01 03:50:52 UTC.
OpenSSF published MAL-2026-18435 (Amazon Inspector, then kam193): 2026-11-01 08:01 UTC.
What to do
If you installed or imported any release in an environment that held credentials, rotate them: cloud keys, forge tokens, registry tokens, and anything else exported into the environment. Look for connections to 85.190.112.236:8881 in egress logs.
Indicators addresses 85.190.112.236:8881requests http://85.190.112.236:8881/b/<nonce>http://85.190.112.236:8881/f/<nonce>
Links