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

rrsPyPI

rrs is a confirmed malicious PyPI package (MAL-2026-16346) that steals credentials and exfiltrates sensitive data (malicious versions 0.3.5, 0.3.100, 0.4.102…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in rrs (PyPI)

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

What this malware does

On launch of the rrs CLI, a background thread captures a full-screen screenshot via mss and POSTs the image together with hostname, username, OS/release, local IP, and timestamp to a hardcoded Discord webhook at https://discord.com/api/webhooks/1549807268294303860/... The upload runs unconditionally at startup, with no consent prompt and no user-configurable destination; the webhook is controlled by the package author and is not disclosed as a destination for screen contents. Separately, Network.start opens an MQTT connection to the public broker broker.hivemq.com:1883 and publishes a JSON identity record (id, hostname, username, os) to the shared topic rrs/v1/presence every 5 seconds, exposing installer host and user identifiers to any subscriber of that world-readable topic. Screen contents typically include private data, credentials, tokens, and messages visible on the desktop at the moment of capture.

Malicious versions

7 flagged
0.3.50.3.1000.4.1020.4.1030.4.1040.4.1050.4.106

Indicators of compromise (SHA-256)

62e995ca8e187fe49bf109637cc941f48881c9153c8ab765b1164ce59f4f56c7
6a50f48efdaf7b00c6eb72e8e16b36f02d5d2a3882ee01ca200ea3f7148cdca7
e141895039e15529e461a314485cf94a3cbbf1cdbbec0905056151b46fc29a88
ae5e88bd115804eb2f024dc489cc4f9ee3771fe371d0b7c86a0da9ce8a351216
2775726e3be7b7ac9969bb742b49e7ae834fe7330c760d7f33382a9919041d36
78c488c5d20c788e88c2d4f0a0cb1eb03317bc71edb05964adad62241fd1295e
8943e0a536a21825c4247f4515edbd473faff733939034bfd30b5563ba6da35b

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

  2. If you installed it — respond

    rrs 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 rrs 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 rrs 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. rrs on PyPI has been identified as a malicious package (versions 0.3.5, 0.3.100, 0.4.102, 0.4.103, 0.4.104, 0.4.105, 0.4.106 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-020249IN-MAL-2026-020247IN-MAL-2026-020248IN-MAL-2026-020251IN-MAL-2026-020250IN-MAL-2026-020253IN-MAL-2026-020252

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks rrs-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