MAL-2026-17807

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/py2ops/MAL-2026-17807.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-17807
Published
2026-10-09T16:02:15Z
Modified
2026-10-12T05:30:05Z
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.

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"
        ]
    }
}
Credits

Affected packages

PyPI / py2ops

Package

Affected ranges

Affected versions

2.*
2.2

Database specific

source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/py2ops/MAL-2026-17807.json"