Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

trove4jPyPI

Malicious code in trove4j (PyPI) Remove it immediately and rotate any exposed credentials.

MAL-2025-998
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
pip uninstall trove4j

What this malware does

Importing the module triggers sending out the hostname to the package author. It looks to be a placeholder/pentest activity related to BytedDance.

Category: PROBABLY_PENTEST - Packages looking like typical pentest packages, but also anything that looks like testing, exploring pre-prepared kits, research & co, with clearly low-harm possibilities.

Campaign: 2024-11-0wn-sh

Reasons (based on the campaign):

  • The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.

Malicious versions

1 flagged
0.1.1

Indicators of compromise (SHA-256)

9c18f5370b5400f7a98f098e11832e4de4522532ae31581643a9cb457d746894
5e606c73142c693ff25bdb051de53e863e37ac4ea4740abe54eefea7be0896cf
d9c0dbfcd94c11b086cf83f69796c321829bdd64c2ebe53d8f74a72d46e465b0
e1b5575c0858eb262f70c8dd8a3f395deac7292d3ed0315d13fb47ec5d353794
5a0c5cbc1a91dd8e492a4e23c4f3d79db4dd69b000de93bfe476aa034367f787

Detection & response playbook

Credential / info stealer
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for trove4j (version 0.1.1). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging trove4j across your stack and pipelines.

  2. If you installed it — respond

    trove4j 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 trove4j was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks trove4j before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. trove4j on PyPI has been identified as a malicious package (version 0.1.1 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

RLMA-2025-005392024-11-0wn-shRLUA-2026-00864

References

Credits

  • Kamil Mańkowski (kam193)
  • ReversingLabs · finder

Detect & block this

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