T09 · Insecure Skill Coding Practices
- Location
src/utils/request.js:71- Finding
API Credential Transmitted in URL Query Strings
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears purpose-built for Xiaohongshu research, but it sends API credentials in URL parameters and automatically saves full results and access-bearing links to local logs without clear retention or redaction controls.
Review before installing. Use a dedicated Guaikei token with limited value, rotate it if exposed, avoid passing sensitive or private links, and treat the generated logs/ directory as sensitive because it may contain full result data and xsec_token URLs. The skill should ideally move credentials out of query strings, redact saved URLs/results, restrict log permissions, and provide an option to disable or expire logs.
src/utils/request.js:71API Credential Transmitted in URL Query Strings
src/xiaohongshu/detail-cli.js:135Automatic Plaintext Storage of Access-Bearing URLs and API Results
src/validate/url.js:3Trusted URL Allowlist Can Be Bypassed Through Substring Matching
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
This mismatch also highlights raw result output and logging beyond the declared note-analysis workflow. When a skill emits or persists raw third-party data instead of only summarized analysis, it can unexpectedly increase data exposure and retention, particularly in agent environments that capture tool output and logs.
Referenced artifact was not completely inspected
- "分析这条小红书笔记评论区的主要观点和负面反馈: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"
Referenced artifact was not completely inspected
- "分析这条小红书笔记评论区的主要观点和负面反馈: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"
Referenced artifact was not completely inspected
- "分析这条小红书笔记评论区的主要观点和负面反馈: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"
Referenced artifact was not completely inspected
- "看这个小红书博主最近 20 条作品都在发什么: node src/xiaohongshu/post-cli.js --url 'https://www.xiaohongshu.com/user/profile/xxx?xsec_token=yyy' --limit 20"
Referenced artifact was not completely inspected
- "看这个小红书博主最近 20 条作品都在发什么: node src/xiaohongshu/post-cli.js --url 'https://www.xiaohongshu.com/user/profile/xxx?xsec_token=yyy' --limit 20"
Referenced artifact was not completely inspected
- "看这个小红书博主最近 20 条作品都在发什么: node src/xiaohongshu/post-cli.js --url 'https://www.xiaohongshu.com/user/profile/xxx?xsec_token=yyy' --limit 20"
The skill requests access to a sensitive environment variable (GUAIKEI_API_TOKEN) but does not declare any explicit tool scope such as permissions or allowed-tools. This weakens least-privilege boundaries and can cause an agent runtime to expose broader capabilities than users expect, especially when the skill also routes data to a third-party API service.
The skill documentation is entirely in Chinese and instructs users to contact support via WeChat and use Chinese-language tooling flows, but it does not state that the skill is intentionally China-region-specific or offer any language/locale opt-in. Under the policy, forcing a specific language without user choice or clear justification is a natural-language policy violation.
The manifest says the skill takes a note link and returns note details, comments, and content-analysis metrics for viral-note decomposition. However, the README describes materially broader functions including keyword-based note search, competitor account monitoring, KOL screening, and trend prediction/market monitoring. These are not just implementation details of link-based note analysis; they expand the skill's stated scope into wider surveillance and discovery workflows.
The documentation frames the tool as dedicated to Xiaohongshu data mining and repeatedly presents it as a Xiaohongshu analysis skill. Yet the capability table states '获取抖音评论详情' for comment analysis, which refers to Douyin rather than Xiaohongshu. This is an active contradiction in the documentation about what platform the skill analyzes.
This markdown content presents the skill changelog entirely in Chinese, including the title and all feature descriptions. Under the language/locale policy rule, forcing a specific language without user opt-in or justification can be a policy violation.
The changelog advertises capabilities well beyond the skill’s stated scope, including keyword search, user work monitoring, competitor analysis, KOL screening, and trend monitoring. This scope mismatch is dangerous because it can conceal undisclosed data collection or operational behavior from reviewers and users, weakening trust boundaries and making it easier for a skill to perform actions the manifest does not clearly authorize.
This file contains natural-language descriptions and later user-facing retry/error strings only in Chinese, which can amount to a language-policy violation when the skill does not provide user opt-in or indicate that it is intentionally region/language-specific. The policy allows locale constraints when clearly documented and justified, but this code file does not document such a constraint.
The retry log message is a natural-language string shown to users/operators and is fixed to Chinese. Because the file does not offer a language choice or explain that the skill is specifically for a Chinese-speaking context, this conflicts with the stated policy for language/locale handling.
This thrown error text is natural-language output and is fixed to Chinese, with no user language selection or documented locale restriction. That creates a language-policy concern under the rule for natural-language policy violations.
This error message is emitted only in Chinese and the file does not indicate that users have opted into that locale or that the skill is region-specific. Under the rule, hard-forcing a language without opt-in is a policy issue.