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

pyfigletsPyPI

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

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

What this malware does

Malicious clone of pyfiglet. Importing the package starts a series of downloading and executing of obfuscated malicious scripts, partially identified by AVs.

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

Campaign: 2025-05-rich-figlet

Reasons (based on the campaign):

  • backdoor

  • clones-real-package

  • obfuscation

  • Downloads and executes a remote malicious script.

Malicious versions

1 flagged
0.0.1

Indicators of compromise (SHA-256)

7198f093584957c553eb8c896044b3cb8bee6bf85c08cf856d8b9d1a63b7f635
f3bc7d429d4c5ea06232ecf9601a6791330176593eebb00ff147bbed316bcf1b
66caa962e9fedf67dff7c9da840c4a4dcdca71f237d2e36f332f5b5bd32750bc
79a812e77f7536e87dbfbd691f5596b72d2d2821b339ed04f8375462bba36443
15693e10c04edbb1252e11a1f26661caa05d3005bdc99dc54a3a80e01e505bcc

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 pyfiglets (version 0.0.1). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging pyfiglets across your stack and pipelines.

  2. If you installed it — respond

    pyfiglets 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 pyfiglets 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 pyfiglets 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. pyfiglets on PyPI has been identified as a malicious package (version 0.0.1 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

RLMA-2025-030212025-05-rich-figletRLUA-2026-00633

References

Credits

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

Detect & block this

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

pyfiglets (PyPI) malicious package — MAL-2025-5124 | O3 Security