T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:5- Finding
Excessive Tool Permissions Violate Least Privilege
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:5-18
Vulnerability Type: Excessive local file access and command-execution permissions
Risk Level: MediumVulnerable Code
yaml allowed-tools: read exec compatibility: "Requires LLM with tool-use capability" metadata: displayName: "金融素养学习工具" version: "1.0.0" summary: "个人金融素养教育工具,提供基础金融概念、理财入门与风险意识培养。" tags: - "Finance" - "金融教育" - "理财入门" source: "SkillHub" converted_at: "2026-07-22T17:58:36" tools: - exec - readThe broader operational claims appear at
SKILL.md:301-303and are duplicated atSKILL.md:309-311:markdown - **文件处理**: 支持多种文件格式的读取、解析和写入操作 - **API集成**: 通过标准化接口调用外部服务并处理响应 - **命令执行**: 在安全沙箱中执行系统命令并收集结果A command-execution use case also appears at
SKILL.md:267:markdown | 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |Technical Analysis
The skill is presented as a pure Markdown financial-literacy knowledge base that does not require external data access, yet its manifest grants both local file-reading and general command-execution capabilities. Static educational explanations and quizzes do not legitimately require these privileges.
Granting
readandexecexpands the skill's authority beyond its documented purpose. The generic claims that it can process files, integrate external APIs, and execute system commands do not define an allowlist, fixed arguments, path restrictions, network restrictions, or an approval boundary. Merely stating that commands should execute in a sandbox does not establish or enforce such isolation.This is a least-privilege violation rather than evidence of an embedded malicious payload. The audited package contains only
SKILL.md; no scripts, binaries, dependency manifests, credential-harvesting logic, persistence mechanisms, or remote payload retrieval implementation were identif ...[truncated 1795 chars]- Remediation
View remediation
Remediation Suggestions
- Remove
execandreadfrom bothallowed-toolsandtools; the documented educational functionality should operate without system tools. - Delete the generic file-processing, API-integration, command-execution, and
pinginstructions unless they are essential to a clearly documented feature. - If diagnostics are genuinely necessary, replace unrestricted
execwith a dedicated diagnostic tool that:- Accepts only fixed operations.
- Validates destinations against an explicit allowlist.
- Rejects shell metacharacters and arbitrary arguments.
- Enforces timeouts and output-size limits.
- Runs without shell interpretation and with minimal operating-system privileges.
- Requires explicit user approval before execution.
- Restrict file access to explicitly approved paths and read-only operations. Do not expose general filesystem reads to a static educational skill.
- Enforce network egress restrictions and document every permitted destination if external API access is later introduced.
- Make the capability documentation consistent with the implementation. A pure Markdown knowledge base should not claim unsupported file writing, API integration, or command execution.
- Add automated manifest checks that reject permissions not directly required by documented features.
- Remove
