T09 · Insecure Skill Coding Practices
- Location
assets/config-template.env:9- Finding
Active API Credentials and Internal Bearer Token Committed to the Skill Package
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent pet/travel game, but it ships live-looking credentials and gives voice, media, posting, memory, and file-handling features broader authority than users would reasonably expect.
Review before installing. Rotate or remove the committed keys and token, restrict transcription and social-post media to trusted attachment or generated-media paths, narrow the triggers, and add explicit consent for memory personalization, voice transcription, and external social posting.
assets/config-template.env:9Active API Credentials and Internal Bearer Token Committed to the Skill Package
scripts/post_to_social.js:101Arbitrary Local Files Can Be Uploaded Through Social-Post Media Parameters
scripts/transcribe_audio.js:30Unrestricted Audio Input Enables SSRF and Arbitrary Local-File Upload to the STT Provider
scripts/build_qqbot_reply.js:58Provider-Controlled Image URL Is Fetched Without SSRF or Resource Controls
SKILL.md:312Skill Instructions Require Broad Profiling of Long-Term User Memory
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill instructs transcription of local paths or arbitrary downloadable audio URLs via a shell command and external STT service, which introduces SSRF-like fetching, local file access, and data exfiltration risk. In the context of a chat pet game, hidden audio downloading and transcription is especially dangerous because users would not expect remote fetches or disk reads to occur as part of normal interaction.
The skill declares extremely broad triggers such as common words like 'buddy' and even implied intents to start, continue, check status, or chat with a pet, plus metadata suggesting always-trigger behavior. Over-broad activation can hijack unrelated conversations and unexpectedly invoke the skill's privileged shell/network behaviors, turning normal chat into an execution path for external posting, media generation, or transcription.
Referenced artifact was not completely inspected
3. Run `scripts/build_qqbot_reply.js` to produce the final QQ-ready reply block
Activating the skill whenever a message merely contains 'clawgo' or '虾游记' is overly broad and can trigger the game unexpectedly during unrelated conversation. That increases the chance of unintended tool execution or state changes, especially because this skill can invoke external scripts, generate media, and post content.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
SKILL_NAME="claw-go"
mkdir -p "$TARGET_DIR"
rm -rf "$TARGET_DIR/$SKILL_NAME"
cp -R "$SKILL_DIR" "$TARGET_DIR/$SKILL_NAME"
echo "Installed $SKILL_NAME to: $TARGET_DIR/$SKILL_NAME"
The skill explicitly instructs use of exec/shell, networked scripts, environment-backed API tokens, file reads, and media/transcription helpers, but declares no tool-scope restrictions. That creates an over-privileged skill surface where any prompt-routing or invocation mistake could expose shell, filesystem, network, and secret-bearing operations far beyond what users would expect from a pet game.
The instruction to prefer plain-text triggering over slash commands broadens the activation surface and makes accidental invocation more likely. In a skill that also describes shell, network, posting, and transcription actions, ambiguous natural-language activation meaningfully increases the chance of unintended side effects.
The instruction treats generic terms like "版本", "version", "最新版本", and "是不是最新" as sufficient to return the version block. These phrases are common in many contexts and are not scoped to this skill, so they may intercept unrelated user questions.
The prompt includes audio transcription of inbound voice messages from local file paths or downloadable URLs, but that capability is not disclosed in the skill metadata. This hidden expansion of capability can surprise users and operators, and it introduces additional privacy and data-handling risk for voice content.
Allowing transcription from any local file path or arbitrary remote URL is broader than the game requires and can be abused to ingest sensitive local files or trigger server-side requests to attacker-controlled endpoints. In a tool-using agent, this creates SSRF and unintended file-access risk beyond the stated gameplay purpose.
The skill is presented as an in-chat pet/travel game, but it also instructs the agent to publish user-generated content to an external social feed. That creates an undeclared data-sharing path for user text, location, media, and identifiers, increasing privacy and consent risk because users may not expect off-platform posting from a game interaction.
This template includes what appears to be a live image-generation API key alongside an external API endpoint. Committing real secrets in a template file is dangerous because anyone with repository access can reuse the credential to access third-party services, incur charges, or process user data through attacker-controlled requests.
CLAWGO_FREE_DAILY_LIMIT=1
CLAWGO_PRO_DAILY_LIMIT=3
CLAWGO_IMAGE_MODE=generate
CLAWGO_IMAGE_API_BASE=https://api.siliconflow.cn/v1/images/generations
CLAWGO_IMAGE_API_KEY=sk-xmigyztduihkktxehigiwyqnexyjtftgvngesiwhixfzzzgs
CLAWGO_IMAGE_MODEL=Kwai-Kolors/Kolors
CLAWGO_TTS_API_BASE=https://api.siliconflow.cn/v1/audio/speech
This entry exposes what appears to be a live text-to-speech API key for an external service. In the context of a skill that handles pet updates, voice features, and likely user prompts/content, exposed credentials can enable unauthorized API use, financial abuse, and possible misuse of user-supplied content sent to the third party.
CLAWGO_IMAGE_API_BASE=https://api.siliconflow.cn/v1/images/generations
CLAWGO_IMAGE_API_KEY=sk-xmigyztduihkktxehigiwyqnexyjtftgvngesiwhixfzzzgs
CLAWGO_IMAGE_MODEL=Kwai-Kolors/Kolors
CLAWGO_TTS_API_BASE=https://api.siliconflow.cn/v1/audio/speech
CLAWGO_TTS_API_KEY=sk-vmnxbiwdytqlfwjwfnpgyfgfrdxkrgpehtuvxexitwgdygps
CLAWGO_TTS_MODEL=fnlp/MOSS-TTSD-v0.5
CLAWGO_TTS_VOICE=fnlp/MOSS-TTSD-v0.5:claire
This configuration exposes another live-looking credential for speech-to-text and also indicates transmission to external endpoints. In a companion/pet skill with voice and diary features, this increases risk because user audio or derived transcripts may be sent off-platform, and exposed keys can be abused for unauthorized access, billing fraud, or privacy-impacting processing.
CLAWGO_TTS_API_KEY=sk-vmnxbiwdytqlfwjwfnpgyfgfrdxkrgpehtuvxexitwgdygps
CLAWGO_TTS_MODEL=fnlp/MOSS-TTSD-v0.5
CLAWGO_TTS_VOICE=fnlp/MOSS-TTSD-v0.5:claire
CLAWGO_STT_API_BASE=https://api.siliconflow.cn/v1/audio/transcriptions
CLAWGO_STT_API_KEY=sk-vmnxbiwdytqlfwjwfnpgyfgfrdxkrgpehtuvxexitwgdygps
CLAWGO_STT_MODEL=FunAudioLLM/SenseVoiceSmall
CLAWGO_SOCIAL_BASE=https://clawgo.fiit.ai
The template hard-codes user_language to zh, which can cause the skill to generate content in Chinese even when the user's actual language preference is different or has not been established. In a conversational product that uses memory and proactive updates, this creates a privacy and consent issue around inferred localization and may degrade user trust or accessibility, though it is not a code-execution or direct data-exfiltration flaw.
Detected: suspicious.dangerous_exec, suspicious.env_credential_access, suspicious.exposed_secret_literal