Back to skill

Security audit

UAPI 查询 Steam 用户 接口

Security checks for vulnerabilities and agentic risk

Overview

This Steam lookup skill is mostly coherent, but users should review it because it allows a Steam Web API key to be sent in a URL query parameter to a third-party API service.

Install only if you are comfortable using UAPI for Steam profile lookups. Avoid sending a personal Steam Web API key through the documented query parameter; prefer a backend-held key or a safer header/secret mechanism, and tighten activation to Steam-specific requests before relying on implicit invocation.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
references/operations/get-game-steam-summary.md:27
Finding
Steam Web API Key Transmitted in a URL Query Parameter## Vulnerability Details **File Location**: `references/operations/get-game-steam-summary.md`, lines 27-28 and 51 **Vulnerability Type**: Sensitive credential exposure through a query string **Risk Level**: Medium **Relevant source excerpt, rendered in English:** ```markdown > [!IMPORTANT] > **API Key Security** > This endpoint requires a Steam Web API Key. We strongly recommend configuring and invoking it through the backend to avoid exposing it in the client. You may also temporarily provide a key through the `key` query parameter to override the backend configuration. | `key` | query | string | No | Your Steam Web API Key. This optional parameter overrides the globally configured backend key when supplied. It offers greater flexibility, but the key must remain confidential and must not be exposed in the frontend. | ``` ### Technical Analysis The skill documentation permits a Steam Web API key to be supplied through the `key` URL query parameter. Although HTTPS protects the request while it is in transit, it does not prevent the complete URL from being retained after TLS termination. URLs and query strings are commonly captured by: - Web server and reverse-proxy access logs. - API gateways and load balancers. - Application performance monitoring and tracing platforms. - Error reports, debugging output, and request history. - Browser or HTTP client history. - Referrer data in some redirect or browser-based scenarios. Consequently, a request such as `GET /game/steam/summary?key=REDACTED&steamid=...` can cause the credential to be copied into systems with broader access and longer retention periods than an authorized secret store. The warning against frontend disclosure does not eliminate this issue because the documented request format itself places the secret in a log-prone URL component. ### Attack Path 1. A user provides a valid Steam Web API key to perform a Steam profile lookup. 2. The agent follows ...[truncated 1135 chars]
Remediation
## Remediation Suggestions 1. Remove the `key` query parameter from the documented and implemented API contract. 2. Accept the credential through a protected request header, such as an authorization header or a dedicated secret header, rather than through the URL. 3. Prefer server-side credential configuration backed by a secret manager so users do not need to submit Steam keys with individual lookup requests. 4. Configure the application, API gateway, reverse proxy, and observability tooling to redact authorization headers and any legacy `key` parameter before logging. 5. Prevent credentials from appearing in error messages, traces, analytics events, request history, and debugging output. 6. Keep Steam API calls on trusted backend infrastructure and prohibit browser-side or other client-side embedding of the key. 7. If compatibility requires temporary support for the query parameter, mark it as deprecated, obtain explicit user consent, warn that the third-party service receives the key, disable URL logging for the endpoint, and provide a migration deadline. 8. Rotate any Steam Web API keys that may already have been transmitted through this query parameter, and review retained logs and traces for prior exposure.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Vague Triggers

Medium
Confidence
93% confidence
Finding
The trigger keyword list includes the standalone term "summary," which is highly generic and likely to match many unrelated requests. This can cause the skill to activate outside its intended Steam-account-lookup context, leading to incorrect tool selection, unintended external API calls, and possible unnecessary disclosure of user-provided identifiers to a third-party service.

Natural-Language Policy Violations

Medium
Confidence
78% confidence
Finding
The skill name, heading, and primary instructional content are presented in Chinese, while the file does not state that the language is optional or region-specific. This can violate language/locale policy when users have not opted into Chinese content.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The document is primarily written in Chinese and presents Chinese invocation guidance as the default without any stated user opt-in or language selection. Under the policy rule, forcing a specific language or locale without offering a choice is a natural-language policy violation.

Vague Triggers

Low
Confidence
86% confidence
Finding
The invocation guidance says to prefer this skill when the request directly corresponds, but it does not define exclusion conditions or negative examples. That ambiguity increases the chance of accidental activation for adjacent intents, which may result in misrouting requests or sending data to the wrong endpoint.

Static analysis

No suspicious patterns detected.