T09 · Insecure Skill Coding Practices
- Location
references/token-server/README.md:46- Finding
Unauthenticated and Over-Privileged RTC Token Issuance
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent for Shengwang voice and RTC integration, but it needs review because its token-server and remote-document guidance can create real security exposure if followed as-is.
Review before installing. If used, do not deploy the token endpoint as written: require caller authentication, authorize channel and UID server-side, avoid wildcard and publisher-by-default tokens, shorten expirations, and add rate limits. Treat fetched docs and cloned samples as untrusted until reviewed, pin or verify token-builder source, keep all secrets server-side, and add consent and retention controls before enabling recording.
references/token-server/README.md:46Unauthenticated and Over-Privileged RTC Token Issuance
references/token-server/README.md:21Unpinned Remote Cryptographic Source Is Copied into Generated Projects
SKILL.md:18Mutable Remote Documentation Is Trusted Without Integrity or Prompt-Boundary Controls
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| Field | Type | Required | Notes |
|-------|------|----------|-------|
| `token` | string | yes | Volcengine access token |
| `app_id` | string | yes | Volcengine app ID |
| `voice_type` | string | yes | e.g. `BV700_streaming` |
| `cluster` | string | no | e.g. `volcano_tts` |
The skill instructs the agent to execute shell commands and perform network downloads, but it does not declare any explicit tool scope or allowed-tools boundary. That creates a capability mismatch where an agent runtime may permit broader shell use than intended, increasing the risk of arbitrary command execution, unexpected external access, or unsafe follow-on actions if the skill is invoked in the wrong context.
The trigger description is very broad and includes generic terms such as AI agent, recording, token, video call, and live streaming, which can cause the skill to activate for unrelated requests. Because the skill can then drive shell-based doc fetching and routing decisions, unintended invocation expands the attack surface and may lead to unnecessary network activity or execution of privileged workflow steps.
This README promotes server-side recording of RTC audio/video to cloud storage but does not mention consent, notification, retention, or legal/privacy obligations. In a developer-facing integration skill, that omission can lead users to deploy recording features that capture conversations without appropriate disclosure or authorization, creating privacy and compliance risk.
The README instructs users that Quickstart requires an App ID and App Certificate and points to token/auth flows, but it does not warn that the App Certificate is a sensitive secret that must never be embedded in client code, committed to repositories, or exposed in logs. In a voice/RTC integration skill, this omission can lead users to handle credentials insecurely during setup, enabling token forgery or unauthorized use of Shengwang services if the certificate leaks.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
def create_agent_with_retry(payload, max_retries=3):
for attempt in range(max_retries):
resp = requests.post(url, json=payload, headers=headers)
if resp.status_code in (200, 201):
return resp.json()
if resp.status_code in (503, 504):
The file describes an interrupt endpoint whose purpose is to stop an agent from speaking or thinking, but the response text says the returned agent information means 'the agent starts broadcasting specified content.' That is an active contradiction in the documentation, not merely an omission, and could mislead integrators about the side effects of calling this API.
This is a markdown file, so SQP-2 applies to missing warnings in the skill description. The document explains that requests can interrupt the agent immediately and even set interruptable to false, but it presents these as features without a caution about user experience, conversation disruption, or non-interruptible playback.
This markdown file documents a configuration-changing API that can materially alter a running agent's behavior. Although it notes that the field will overwrite the creation-time configuration, it does not clearly warn users about the operational impact or advise caution before making the change.
The document includes a directly usable Basic Auth credential construction pattern using customer key and secret, but it does not warn readers to treat these values as secrets, avoid embedding them in client-side code, or store them securely. In API integration documentation, this omission can lead developers to copy the pattern into insecure contexts, increasing the risk of credential exposure and unauthorized API access.
This markdown file documents an API that returns stored short-term memory, including user and assistant messages. Because the operation exposes potentially sensitive conversation history, the documentation should include a clear privacy warning or handling guidance for users.
This markdown file describes sending authentication material in the Authorization header, including RTC Token and Basic Auth examples, but it does not include any warning about treating these values as sensitive credentials. For markdown files, SQP-2 applies when descriptions omit warnings about behaviors affecting privacy or system integrity; credential handling is security-sensitive and should be explicitly cautioned.
The entire skill document, including title, description, and operational instructions, is presented only in Chinese. This can constitute a language/locale policy violation because it imposes a specific language without user opt-in and does not document a justified region-specific constraint.
Line L046 defines properties.asr.language with a default of "zh-CN" and presents language handling as a fixed default rather than a user-selected preference. Under the policy rule, forcing a specific language or locale without explicit opt-in is a natural-language policy concern unless clearly justified as region-specific.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"enable_aivad": true
},
"llm": {
"url": "https://api.minimax.chat/v2/text/chatcompletion_v2",
"api_key": "xxx",
"system_messages": [
{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"enable_aivad": true
},
"llm": {
"url": "https://api.minimax.chat/v2/text/chatcompletion_v2",
"api_key": "xxx",
"system_messages": [
{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"enable_aivad": true
},
"llm": {
"url": "https://api.minimax.chat/v2/text/chatcompletion_v2",
"api_key": "xxx",
"system_messages": [
{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
}
},
"llm": {
"url": "https://api.openai.com/v1/chat/completions",
"api_key": "your_openai_api_key",
"system_messages": [
{
The natural-language content, including the title, description, and operational instructions, is fixed to Chinese. Under the policy, forcing a specific language without user opt-in or a documented regional justification is a locale-policy issue.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## 服务器
- `https://api.agora.io/cn/api/conversational-ai-agent`
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## 服务器
- `https://api.agora.io/cn/api/conversational-ai-agent`
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## 服务器
- `https://api.agora.io/cn/api/conversational-ai-agent`
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## 服务器
- `https://api.agora.io/cn/api/conversational-ai-agent`
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## 服务器
- `https://api.agora.io/cn/api/conversational-ai-agent`
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
## 服务器
- `https://api.agora.io/cn/api/conversational-ai-agent`
No suspicious patterns detected.