目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%
← 返回恶意软件包
PyPI active

py2ops

MAL-2026-17807
2026-10-09 16:02:15
OpenSSF Malicious Packages
该软件包被识别为恶意包。建议隔离受影响环境,并排查凭据泄露和异常网络连接。

Summary

Malicious code in py2ops (PyPI)

AI 分析整理qwen3.6
基于上游报告生成,请以下方原始证据为准。
公开使用量数据
统计周期
—
下载量
—
数据源
pypistats.org
下载量只代表仓库活动度,不等于已被入侵的安装数量。
受影响版本
EcosystemPackageVersion
PyPIpy2ops2.2
恶意行为说明OpenSSF OSV
上游来源证据
展开原始 OSV JSON
{"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