T05 · Unauthorized Access and Privilege Escalation
- Location
references/questionnaire-guide.md:98- Finding
Cloud Instance Metadata Service Probing
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a coherent risk-assessment purpose, but it grants and transmits broad sensitive local-security information and documents unsafe credential handling.
Review carefully before installing. Use only trusted HTTPS endpoints, avoid --no-verify-ssl, do not send real API keys over test HTTP endpoints, inspect and redact the assessment directory before submission, and avoid running the scan from cloud instances where metadata services or broad local agent configuration may be accessible.
references/questionnaire-guide.md:98Cloud Instance Metadata Service Probing
references/data-storage.md:9Plaintext API Key Stored in a Predictable Global Configuration File
SKILL.md:49Authentication Permitted over Cleartext HTTP or Unverified TLS
references/risk-factors-format.md:12Excessive Runtime, Configuration, Plugin, and Asset Reconnaissance
SKILL.md:99Automatic Execution of an Unpinned Third-Party Package
Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.
"codex:v0:32-char-hash": {
"agent_id": "uuid",
"framework": "codex",
"config_path": "/Users/example/.codex/config.toml",
"machine_id": "os:masked",
"nickname": "Codex 工作台助手",
"legacy_fingerprints": ["codex:sha256:32-char-hash"]
Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.
"codex:v0:32-char-hash": {
"agent_id": "uuid",
"framework": "codex",
"config_path": "/Users/example/.codex/config.toml",
"machine_id": "os:masked",
"nickname": "Codex 工作台助手",
"legacy_fingerprints": ["codex:sha256:32-char-hash"]
The guide also instructs access to Alibaba Cloud's metadata endpoint 100.100.100.200, which carries the same SSRF and sensitive-metadata exposure risk. Even read-only probing can disclose cloud identity and potentially privileged instance details that should remain inaccessible to routine skill flows.
**填写条件:** 仅当 2.1.3 部署方式为 `云服务器` 时填写,否则 value 设为 `null`,reasoning 说明"部署方式非云服务器,无需填写"。
**判断方法:**
- 尝试访问云实例元数据服务(如 `http://100.100.100.200/latest/meta-data/` 为阿里云,`http://169.254.169.254/latest/meta-data/` 为 AWS)。
- 检查环境变量中是否包含云厂商标识(如 `ALIBABA_CLOUD_ACCESS_KEY_ID`、`AWS_REGION`)。
- 检查 `/etc/cloud/cloud.cfg` 等配置文件。
The guide also instructs access to Alibaba Cloud's metadata endpoint 100.100.100.200, which carries the same SSRF and sensitive-metadata exposure risk. Even read-only probing can disclose cloud identity and potentially privileged instance details that should remain inaccessible to routine skill flows.
**填写条件:** 仅当 2.1.3 部署方式为 `云服务器` 时填写,否则 value 设为 `null`,reasoning 说明"部署方式非云服务器,无需填写"。
**判断方法:**
- 尝试访问云实例元数据服务(如 `http://100.100.100.200/latest/meta-data/` 为阿里云,`http://169.254.169.254/latest/meta-data/` 为 AWS)。
- 检查环境变量中是否包含云厂商标识(如 `ALIBABA_CLOUD_ACCESS_KEY_ID`、`AWS_REGION`)。
- 检查 `/etc/cloud/cloud.cfg` 等配置文件。
The sample explicitly demonstrates exposing cloud metadata access results and credential-related environment information in output text. This is dangerous because it turns sensitive infrastructure fingerprints into user-visible content and may aid follow-on attacks against the hosting environment.
The sample reasoning not only references a metadata endpoint but presents successful access as a model answer, reinforcing unsafe behavior. This makes the skill more dangerous because it encourages actual runtime retrieval and disclosure of sensitive metadata during normal operation.
{
"value": "云服务器",
"reasoning": "我检查了当前运行环境,发现可以通过 HTTP 访问 100.100.100.200/latest/meta-data/ 获取实例信息,返回的内容包含'aliyun'字样,且环境变量中存在 ALIBABA_CLOUD_ACCESS_KEY_ID。这些特征明确表明当前运行在阿里云 ECS 实例上,因此判断部署方式为云服务器。"
}
The asset collection section asks the agent to identify access credentials, sensitive data types, and infrastructure it can reach. Even though it says not to output credential contents, prompting credential discovery and infrastructure enumeration still produces a high-value target map that could facilitate privilege escalation, secret hunting, or later compromise if mishandled.
The trigger phrases are broad enough to match common language about buying insurance, checking status, or reporting incidents, which can cause the skill to activate in situations the user did not intend. Because this skill can lead to authentication, local scanning, data collection, and backend submission, overbroad invocation materially raises the chance of unwanted sensitive actions.
The skill instructs framework auto-detection and collection of local environment signals such as environment variables, config directories, and process-chain artifacts that go beyond the user-visible insurance/application workflow. In this context, that expands local data access and fingerprinting surface without clear minimization or explicit consent boundaries, creating unnecessary privacy and reconnaissance risk if the collected metadata is transmitted or retained.
The skill directs the agent to run local package installation and upgrade commands (uv tool install / upgrade) even though the skill's stated purpose is advisory and service handling. Allowing a skill to modify the local system and pull code from external package sources increases supply-chain and integrity risk, especially when performed automatically or without a tight approval step.
The skill instructs submission of locally collected assessment and incident data to a backend without a clear, prominent warning that sensitive security details, environment information, and possible breach data will be transmitted off-device. In a security/insurance context, these submissions can include highly sensitive operational details, making lack of explicit disclosure and consent particularly dangerous.
The instructions state that returned plan codes must be converted to Chinese names and explicitly forbid directly showing the code, but they do not provide any user language choice or note that the skill is intentionally Chinese-only. This is a natural-language locale policy issue because the skill forces a specific language presentation without user opt-in.
The natural-language fields in the manifest are entirely in Chinese, including the description, requirements, and trigger phrases. Because the file does not indicate that the skill is region-specific or provide any user opt-in for language/locale, it appears to impose a specific language unconditionally, which matches the language/locale policy violation criteria.
The skill content is written as a mandatory Chinese-language questionnaire guide and instructs the agent to produce natural-language reasoning in that format, but it does not provide an opt-in or alternative language path. Under the policy, forcing a specific language without user choice is a natural-language policy violation unless clearly justified as region-specific.
Mandating 'complete reasoning evidence' for every answer pressures the agent to reveal internal evidence sources such as env vars, filesystem paths, logs, and security settings. In this skill context, that can cause the questionnaire output itself to become a sensitive data exfiltration artifact.
The requirement to include complete reasoning evidence derived from environment inspection and prior interactions can directly expose sensitive operational context in the generated questionnaire. Such disclosures may include security posture, infrastructure details, and traces of protected user or organizational information.
The guide encourages the agent to summarize historical user requests as supporting evidence for answers. In a risk-service skill, that can leak confidential workload patterns, proprietary projects, or sensitive user-submitted content that is unrelated to the application itself.
The guide explicitly instructs the agent to probe local/cloud environment details, including cloud metadata endpoints, environment variables, and config files, in order to answer a questionnaire. That exceeds the minimum information needed for a service application workflow and can induce unauthorized infrastructure discovery or SSRF-style access to sensitive instance metadata.
The instructions tell the agent to inspect local environment, metadata services, APIs, and configuration sources without any user notice, consent gate, or scope restriction. This creates a risky pattern where sensitive system probing is normalized as part of ordinary questionnaire completion.
The example reasoning normalizes disclosure of concrete environment artifacts such as metadata responses, env-var names, and filesystem paths. Providing such examples increases the likelihood that downstream outputs will reveal exploitable infrastructure details and credential-handling patterns.
The title and description define the questionnaire in Chinese and instruct the AI agent to fill it automatically in that locale, while the schema later requires a natural-language reasoning string. There is no indication that other languages are allowed or that the Chinese-only constraint is optional or justified as region-specific, which creates a natural-language policy concern.
The reasoning field requires a complete natural-language description, and in context the schema's surrounding instructions are Chinese-only. Because the schema does not provide a language choice or explain that the locale is intentionally restricted for compliance or regional use, it can be interpreted as forcing one language for generated content.
The instructions explicitly direct enumeration of installed skills and plugins across Codex, Claude Code, and MCP-related configurations. That creates a cross-tool inventory of the user's agent ecosystem, which can reveal capabilities, integrations, and potential attack paths that are not necessary for a narrow risk-advisory function.
The skill directs scanning of common skill directories including Codex and Claude Code locations to enumerate installed skills. Enumerating these directories reveals installed capabilities and potentially security-relevant tooling, which increases reconnaissance value for an attacker and exceeds least-privilege collection.
| 文件名 | 说明 |
|--------|------|
| `cli-scan-system.json` | 操作系统、硬件、Python 版本等系统信息 |
| `cli-scan-skills.json` | 已安装的 skills 列表(扫描常见技能目录,包含 Codex `~/.codex/skills` 与 Claude Code `~/.claude/skills`) |
| `cli-scan-plugins.json` | 已安装的 plugins 列表(扫描 MCP 配置) |
**无需手动收集这些文件。**
The skill directs scanning of common skill directories including Codex and Claude Code locations to enumerate installed skills. Enumerating these directories reveals installed capabilities and potentially security-relevant tooling, which increases reconnaissance value for an attacker and exceeds least-privilege collection.
| 文件名 | 说明 |
|--------|------|
| `cli-scan-system.json` | 操作系统、硬件、Python 版本等系统信息 |
| `cli-scan-skills.json` | 已安装的 skills 列表(扫描常见技能目录,包含 Codex `~/.codex/skills` 与 Claude Code `~/.claude/skills`) |
| `cli-scan-plugins.json` | 已安装的 plugins 列表(扫描 MCP 配置) |
**无需手动收集这些文件。**
Detected: suspicious.exposed_resource_identifier