This project has been quarantined by PyPI admins. It cannot be installed or modified until a security review is complete.
crowdsentinel-mcp-server-es9
SECURITY RESEARCH PoC — dependency-confusion placeholder package. 用于证明
CrowdSentinels-AI-MCP文档里已公开的uvx crowdsentinel-mcp-server-es9指向一个在 PyPI 上从未被注册的名字。维护者看这里即可接手(见文末"移交")。
这是什么
thomasxm/CrowdSentinels-AI-MCP 的 README 并列给出了三条安装命令:
uvx crowdsentinel-mcp-server # 主包,PyPI 上存在,作者 medjed@crowdsentinel.io
uvx crowdsentinel-mcp-server-es9 # Elasticsearch 9.x —— PyPI 上不存在
uvx crowdsentinel-mcp-server-es9 # Elasticsearch 9.x —— PyPI 上不存在
主包在 PyPI 上有 37 个版本,两个变体名字一直是空的。任何人在客户端里照抄第二、三行, 解析都会失败;一旦名字被人注册,跑的就是注册者上传的代码,而不是仓库里的源码。
会做什么(故意做得很少)
- import 期打印:模块真实路径、解释器、cwd、
~/.ssh存在性、敏感形 env 变量名(不打印值) - 往
%TEMP%\hey.txt写一行标记 - 之后起一个最小 stdio JSON-RPC 循环,回应
initialize/tools/list/ping - 不发任何网络请求、不改用户文件、不读凭据内容
本地验证
pwsh -File .\verify.ps1
三段对照:真实 PyPI 上解析失败 → 本地索引命中并执行 → 主包可正常安装但名字不同。
移交
维护者若要接手,两种方式任选:
- 在 PyPI 项目 Settings → Collaborators 里加
@mcpsec-lab,或 - 直接在 GitHub issue / 邮件里说要,我用
uv publish发一个新版本后把 owner 转过去
版本号停在 0.9.1:低于主包当前线,但远高于"不存在",占位期不会被任何 pin 挡住。
上游:https://github.com/thomasxm/CrowdSentinels-AI-MCP
报告联系人:medjed@crowdsentinel.io
Metadata
Release files for crowdsentinel-mcp-server-es9 0.9.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| crowdsentinel_mcp_server_es9-0.9.1.tar.gz | 10.4 kB | Without provenance | Details for crowdsentinel_mcp_server_es9-0.9.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| crowdsentinel_mcp_server_es9-0.9.1-py3-none-any.whl | Python 3 | none | any | Details for crowdsentinel_mcp_server_es9-0.9.1-py3-none-any.whl |
Total release size: 15.4 kB
Release files / crowdsentinel_mcp_server_es9-0.9.1.tar.gz
| Download URL | crowdsentinel_mcp_server_es9-0.9.1.tar.gz |
|---|---|
| Size | 10.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2accd668875ed0a19fa6c061751c49c54a827380187532b202020d5485eaabb9
|
|
BLAKE2b-256 checksum How to use checksums |
e7167f7dfc184456d3caf62e20562a0dbdfed87bee883f4cdff2be86a496124c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / crowdsentinel_mcp_server_es9-0.9.1-py3-none-any.whl
| Download URL | crowdsentinel_mcp_server_es9-0.9.1-py3-none-any.whl |
|---|---|
| Size | 5.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b208df48efc3f35070154b194f46d025f441301843ddd103eda4a0cde23989b3
|
|
BLAKE2b-256 checksum How to use checksums |
52df2df87765d5ddb2c3f388b40eaa316a1b2af6d945dce6dcbc70dbd21b8641
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for crowdsentinel-mcp-server-es9 0.9.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.