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

win32strPyPI

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

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

What this malware does

Research packages targeting typosquatting and dependency confusions, without really harmful behaviour - just calling home through DNS resolver.

Related to 2025-06-stubsout (using the same remote domain), but without dangerous activity

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: 2025-06-diar-ai-basic

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.

  • typosquatting

Malicious versions

2 flagged
0.0.10.0.3

Indicators of compromise (SHA-256)

e9b5d89e0cc5767028cd5d6f066235807536f7703fc98e6a170bf9a3b8ccd469
afe91149c788d349c6c0d31487fb417ce5fabc059b447dc4289b1e74f2cd161c
8c4720f3198db33b3696ad46cbc055de45a0500b0dfd1d2a8171b1781650b0c9

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

  2. If you installed it — respond

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

Campaign

2025-06-diar-ai-basic

References

Credits

  • Kamil Mańkowski (kam193)

Detect & block this

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

win32str (PyPI) malicious package — MAL-2025-191935 | O3 Security