pypi · Malicious package advisory
Malwareguan
MAL-2026-3692
Malicious code in guan (PyPI)
Details
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (2e04a9a658bc7616e72a5edf276dd049e5b697f2492c46929caf2e01fac95d84) The top-level `src/guan/__init__.py` unconditionally calls `statistics_of_guan_package()` on every `import guan`. That function (in `src/guan/others.py`) opens a raw TCP socket to the hardcoded author-controlled endpoint `socket.guanjihuan.com:12345` and sends a JSON payload containing the installer's MAC address (via `uuid.getnode()`), the `guan` package version, and timestamp. There is no opt-out, no documentation of this behavior in README/PKG-INFO, and no user consent. This constitutes silent collection of a stable hardware identifier from every machine that imports the package and transmits it to an author-controlled server — an installer-side data exfiltration pattern, not merely author-side self-harm. While the payload is narrow (MAC + version + time), MAC addresses are persistent hardware identifiers suitable for tracking, correlation, and deanonymization of developer/build machines.
Compromised versions (2)
- 0.1.171
- 0.1.100
Any computer that installed or ran a compromised version should be considered fully compromised. Rotate every secret on that machine from a clean environment.