高风险 — 风险评分 72/100
上次扫描:18 小时前 重新扫描
72 /100
gangtise-kb
Query Gangtise knowledge base API for financial/market information
Skill contains multiple critical security issues: disabled SSL verification enabling MITM attacks, undeclared subprocess execution, and references to a non-existent binary file.
技能名称gangtise-kb
分析耗时40.2s
引擎pi
不要安装此技能
Do not deploy. Disable SSL verification must be removed, subprocess usage must be documented, and missing binary must be verified.

攻击链 4 步

入口 User installs skill following SKILL.md documentation
SKILL.md:1
提权 Disabled SSL verification allows MITM interception of credentials
scripts/get_token.py:51
提权 subprocess execution of non-existent binary
gangtise_kb_skill.py:41
影响 Potential credential theft through MITM attack
scripts/get_token.py:51

安全发现 6 项

严重性 安全发现 位置
严重
Undeclared subprocess execution with missing binary 代码执行
gangtise_kb_skill.py uses subprocess.run() to execute gangtise-kb/gangtise-kb.py which does not exist in the file tree. This creates a security blind spot where arbitrary code could be injected.
cmd = [str(binary_path), "--input", temp_file]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=30)
→ Document subprocess usage in SKILL.md or remove this wrapper entirely if the binary is not part of the skill package
gangtise_kb_skill.py:41
严重
SSL certificate verification disabled on all API calls 数据外泄
All scripts disable SSL verification using ssl.CERT_NONE or _create_unverified_context(). This allows Man-in-the-Middle attacks to intercept credentials and API responses.
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
→ Use default SSL context with proper certificate verification, or pin certificates if required
get_token.py:51
严重
SSL verification disabled in query script 数据外泄
query_kb.py also disables SSL verification at line 69-71, creating same MITM vulnerability.
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
→ Remove SSL verification bypass
scripts/query_kb.py:69
高危
SSL verification disabled in temp_query.py 数据外泄
temp_query.py uses ssl._create_unverified_context() for all HTTPS requests.
context = ssl._create_unverified_context()
→ Remove SSL verification bypass
scripts/temp_query.py:15
中危
SKILL.md does not declare shell execution capability 文档欺骗
The main skill file gangtise_kb_skill.py uses subprocess to execute external binaries, but SKILL.md only documents Bash scripts for configuration. No mention of Python subprocess usage.
result = subprocess.run(cmd, capture_output=True, text=True, timeout=30)
→ Document all execution methods in SKILL.md capabilities section
gangtise_kb_skill.py:41
中危
Temporary file creation with cleanup race condition 权限提升
gangtise_kb_skill.py creates temporary files in /tmp and relies on os.unlink() for cleanup. This could expose sensitive data if deletion fails or during crash scenarios.
with tempfile.NamedTemporaryFile(mode='w', suffix='.json', delete=False) as f:
→ Use delete=True or handle file cleanup more securely
gangtise_kb_skill.py:45
资源类型声明权限推断权限状态证据
文件系统 NONE WRITE ✗ 越权 gangtise_kb_skill.py:45 writes temp files
网络访问 READ READ ✓ 一致 API calls to open.gangtise.com in all scripts
命令执行 NONE WRITE ✗ 越权 gangtise_kb_skill.py:41-55 uses subprocess.run()
1 项发现
🔗
中危 外部 URL 外部 URL
https://open.gangtise.com
SKILL.md:18

目录结构

7 文件 · 24.2 KB · 781 行
Python 5f · 576L Markdown 1f · 201L JSON 1f · 4L
├─ 📁 scripts
│ ├─ 🐍 configure.py Python 95L · 2.7 KB
│ ├─ 🔑 get_token.py Python 98L · 2.9 KB
│ ├─ 🐍 query_kb.py Python 195L · 6.2 KB
│ └─ 🐍 temp_query.py Python 101L · 4.4 KB
├─ 🔑 config.json JSON 4L · 133 B
├─ 🐍 gangtise_kb_skill.py Python 87L · 3.1 KB
└─ 📝 SKILL.md Markdown 201L · 4.9 KB

安全亮点

✓ Credentials stored with restrictive permissions (0o600) by configure.py
✓ Proper input validation and error handling in authentication flow
✓ Clear documentation of API endpoints in SKILL.md
✓ Credentials are not hardcoded in scripts, loaded from config.json