Low Risk — Risk Score 25/100
Last scan:2 days ago Rescan
25 /100
cms-find-skills
CMS Skill 发现工具,调用 get-skills 接口浏览和搜索 Skill,并按 downloadUrl 下载 ZIP 安装到本地
Skill 功能简单透明,声明与实现完全一致,无敏感操作,verify=False 存在中间人风险但符合内网工具场景
Skill Namecms-find-skills
Duration33.0s
Enginepi
Safe to install
可安全使用。建议生产环境添加证书验证或限制内网使用

Findings 4 items

Severity Finding Location
Medium
SSL 证书验证被禁用
requests 调用使用 verify=False,禁用 SSL 证书验证,存在中间人攻击风险
response = requests.post(API_URL, headers=headers, verify=False, timeout=60, allow_redirects=True)
→ 生产环境应启用证书验证 verify=True,或使用内网部署避免此风险
scripts/skill_registry/get_skills.py:50
Medium
SSL 证书验证被禁用
requests 调用使用 verify=False,禁用 SSL 证书验证,存在中间人攻击风险
response = requests.get(url, stream=True, verify=False, timeout=120, allow_redirects=True)
→ 生产环境应启用证书验证 verify=True,或使用内网部署避免此风险
scripts/skill_registry/install_skill.py:98
Low
ZIP 路径穿越防护完善
代码实现了 _normalize_zip_member 和 _safe_extract 函数,有效防护 ZIP 路径穿越攻击
if normalized.startswith('../') or '/../' in f'/{normalized}/': raise ValueError(...)
→ 良好的安全实践,可保持
scripts/skill_registry/install_skill.py:34-54
Low
依赖管理缺失
未找到 requirements.txt 或 Pipfile 等依赖锁定文件,第三方库版本不可控
import requests
→ 建议添加 requirements.txt 锁定 requests 版本
N/A:N/A
ResourceDeclaredInferredStatusEvidence
Network WRITE WRITE ✓ Aligned scripts/skill_registry/get_skills.py:41-47
Filesystem WRITE WRITE ✓ Aligned scripts/skill_registry/install_skill.py:117-126
Shell NONE NONE 无 subprocess 调用
Environment NONE NONE 无 os.environ 遍历
Clipboard NONE NONE 无剪贴板访问
Database NONE NONE 无数据库操作
3 findings
🔗
Medium External URL 外部 URL
https://skills.mediportal.com.cn/api/skill/list
openapi/skill-registry/get-skills.md:1
🔗
Medium External URL 外部 URL
https://filegpt-hn.file.mediportal.com.cn/cwork_skill/cms-auth-skills_1.0.zip
openapi/skill-registry/get-skills.md:31
🔗
Medium External URL 外部 URL
https://skills.mediportal.com.cn
scripts/skill_registry/get_skills.py:21

File Tree

4 files · 19.2 KB · 557 lines
Python 2f · 467L Markdown 2f · 90L
├─ 📁 openapi
│ └─ 📁 skill-registry
│ └─ 📝 get-skills.md Markdown 49L · 1.3 KB
├─ 📁 scripts
│ └─ 📁 skill_registry
│ ├─ 🐍 get_skills.py Python 212L · 6.9 KB
│ └─ 🐍 install_skill.py Python 255L · 9.4 KB
└─ 📝 SKILL.md Markdown 41L · 1.6 KB

Dependencies 1 items

PackageVersionSourceKnown VulnsNotes
requests * import No 无版本锁定文件

Security Positives

✓ 声明与实现完全一致,功能范围清晰
✓ 实现了完善的 ZIP 路径穿越防护机制
✓ 无需登录授权,符合声明
✓ 无凭证收割、环境变量遍历等高危操作
✓ 无远程代码执行风险
✓ 未访问敏感路径 (~/.ssh, ~/.aws, .env 等)
✓ 代码结构清晰,有完整的错误处理