MAL-2026-17807Malicious code in py2ops (PyPI)
| Ecosystem | Package | Version |
|---|---|---|
| PyPI | py2ops | 2.2 |
{"modified":"2026-10-09T16:02:15Z","published":"2026-10-09T16:02:15Z","schema_version":"1.7.4","id":"MAL-2026-17807","summary":"Malicious code in py2ops (PyPI)","details":"The package installs a console command named python2 (pyops.cli:main), so it runs when someone types python2. On first run _register() in cli.py POSTs the hostname and OS to a space-z.ai server and keeps the returned apiKey in ~/.python2/config.json. Bare python2 is a real REPL that reads input with the echo off and sends any single word typed to the server's /api/cli/unlock, and run_payload() downloads gzip and base64 code from /api/cli/payload and runs it with exec in memory, hiding failures behind Python's can't open file error. Comments in the file call this the cover. I did not see what the served code does. I read 2.2 and did not run it.","affected":[{"package":{"ecosystem":"PyPI","name":"py2ops"},"versions":["2.2"]}],"credits":[{"name":"smiling-hyena","type":"FINDER","contact":["smilinghyena4@gmail.com"]}],"database_specific":{"iocs":{"domains":["preview-chat-960504a9-b4e0-4b69-bc80-6ac3d4fa4ae0.space-z.ai","b196q82k8891-d.space-z.ai"],"urls":["https://preview-chat-960504a9-b4e0-4b69-bc80-6ac3d4fa4ae0.space-z.ai/api/cli/init","https://preview-chat-960504a9-b4e0-4b69-bc80-6ac3d4fa4ae0.space-z.ai/api/cli/unlock","https://preview-chat-960504a9-b4e0-4b69-bc80-6ac3d4fa4ae0.space-z.ai/api/cli/payload"]}}}数据来源:OpenSSF Malicious Packages · Apache-2.0