T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:44- Finding
Ambiguous Credential-File Access May Expose Unrelated Secrets
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 44-52 and 127-131
Vulnerability Type: Overbroad credential access and unvalidated secret transmission
Risk Level: HighRelevant snippets:
text 在任何涉及语音通话服务的对话开始时,检查 `~/.json` 或宿主密钥库。若存在API密钥,作为 `X-Api-Key` 发送。 首次未鉴权的 `POST /call` 响应可能包含 `api_key`。立即保存: { "api_key": "voicecall_sk_...", "user_phone_number": "+15559876543" }text `~/.json` 保存API密钥与用户电话号码,跨会话复用。 1. **检查持久状态**:读 `~/.json`,若有 `api_key` 则作为 `X-Api-Key` 发送。Technical Analysis
The Skill instructs the Agent to inspect the generic path
~/.jsonor a host credential store whenever a voice-call conversation begins. This path is inconsistent with the service-specific~/.config/voicecall/key.jsonpath documented elsewhere.A generic home-directory JSON file may belong to another application. The instructions do not require validation of the file owner, schema, provenance, service identifier, or credential prefix before transmitting a discovered value through the
X-Api-Keyheader. Access to an undifferentiated host credential store is also broader than the task requires.Attack Path
- An unrelated application or user creates
~/.jsoncontaining a field namedapi_key. - The Skill is activated for a voice-call request.
- The Agent follows the instruction to read
~/.jsonor search a host credential store. - The unrelated credential is interpreted as the voice-call API key.
- The Agent transmits that credential to the configured external API in the
X-Api-Keyheader. - The external service, its infrastructure, or network logs may obtain the unrelated secret.
Impact Assessment
Exploitation may disclose credentials belonging to another application or service. The resulting privileges are determined by the exposed credential and could extend beyond the voice-call service. The issue breaks least-privilege boundaries by directing acce ...[truncated 72 chars]
- An unrelated application or user creates
- Remediation
View remediation
Remediation Suggestions
- Read only a service-specific path such as
~/.config/voicecall/key.json. - Do not enumerate or inspect a general host credential store. Request only an exact, service-specific credential entry.
- Validate an exact JSON schema, expected service identifier, and
voicecall_sk_prefix before using a stored value. - Confirm the destination host against an explicit allowlist before transmitting credentials.
- Require explicit user authorization before loading or sending an existing credential.
- Reject files that are symbolic links, have unexpected ownership, or have permissions allowing access by other users.
- Read only a service-specific path such as
