T09 · Insecure Skill Coding Practices
- Location
SKILL.md:166- Finding
Hardcoded Flomo Bearer Token Exposes Account Data
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill has a coherent Flomo note-exploration purpose, but it exposes a Flomo API token in the published instructions and stores note-walk history locally.
Do not install this version unless the exposed Flomo token has been removed and revoked. A safer version should use a user-provided secret from a protected store, clearly explain what note history is saved locally, and let the user disable or delete that history.
SKILL.md:166Hardcoded Flomo Bearer Token Exposes Account Data
The skill embeds a live-looking API token directly in documentation and explicitly tells the agent to read credentials from SECRET.md. This creates a credential exposure risk: anyone with access to the skill file can reuse the token to access the user's flomo data, and the exposure is unrelated to the core UX of random note exploration.
The manifest description says the skill triggers on phrases like "开始漫步" and similar terms followed by "等", which makes the activation scope open-ended and ambiguous. These phrases are common conversational language and the file does not provide exclusion conditions or negative examples to distinguish ordinary usage from intentional skill invocation.
The trigger list includes broad phrases such as "开始漫步" and "漫步一下", which can appear in normal conversation and are not sufficiently domain-specific. The document does not define when these phrases should not activate the skill, increasing the risk of accidental invocation.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
调用 get_daily_review 获取今日推荐笔记,从中随机选择一条。
curl -X POST "https://flomoapp.com/mcp" \
-H "Authorization: Bearer {FLOMO_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_daily_review","arguments":{}}}'
The skill records walk history, including note IDs, tags, dates, and usage statistics, into a local memory file without any user notice or consent. This creates an avoidable privacy and data retention risk, especially because note metadata can reveal sensitive personal topics and behavior over time.
The entire skill description, trigger phrases, and example interactions are defined only in Chinese, implying a fixed language/locale behavior without user opt-in or alternative language support. Under the policy, a language constraint should either be optional for users or explicitly documented as a justified locale-specific limitation.
No suspicious patterns detected.