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

swapocPyPI

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

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

What this malware does

Packages that might be part of testing for pentesting / malicious activity / joy, with suspicious activity that does not present any real harm.

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: GENERIC-simple-tests

Reasons (based on the campaign):

  • The package overrides the install command in setup.py to execute malicious code during installation.

Malicious versions

12 flagged
0.0.10.0.20.0.30.0.40.0.50.0.60.0.70.0.80.0.91.0.01.0.12.0.0

Indicators of compromise (SHA-256)

491882f5ec689643f516000ca78e0c2f1f19d444bd92ec1cfd9c43298c34a944
05bf0d435484ca71fcc73aae1b5036b3d76d50e496dba26335a9b9737e5b48b1
fc650deb79ebf195b7e2ca4aeef3e25c9a26632fbc108f4bfabe54199f0b3b49
77bd8dd8454c2b18cde0b9d384168e5398ed0ca2651bbc0f6f31f1fbd0e2a452
6db35fa7696ff4da055d698afa9f4db8ab11464d468b9d010f904ffb66550f8c
85ef7e91cbc108187e5d91141fc30f18ffefab27066f3e7ccabc5b50686c71ef

Detection & response playbook

Malicious package
  1. Find it

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

  2. If you installed it — respond

    Remove swapoc from your project and lockfile, then assume any secrets accessible to the build or runtime were exposed: rotate API keys, tokens, and credentials, and audit for unexpected outbound activity or persistence.

  3. Did it already run?

    If swapoc 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 swapoc 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. swapoc on PyPI has been identified as a malicious package (versions 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7, 0.0.8, and 4 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

RLMA-2025-00530GENERIC-simple-testsRLUA-2026-00792

References

Credits

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

Detect & block this

O3 blocks swapoc-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.

swapoc (PyPI) malicious package — MAL-2025-989 | O3 Security