T09 · Insecure Skill Coding Practices
- Location
src/utils/request.js:87- Finding
API Credential Exposed in URL Query Strings
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears to perform the stated Xiaohongshu data-collection tasks, but it needs review because it sends the API token in URL query strings and automatically stores collected results locally.
Install only if you are comfortable sending Xiaohongshu keywords, URLs, and your Guaikei API token to the Guaikei service. Use a dedicated, revocable token, avoid sensitive research targets on shared machines, and periodically delete the local logs directory if retained search results or comments should not remain on disk.
src/utils/request.js:87API Credential Exposed in URL Query Strings
The documentation explicitly states that every execution is archived to local logs/...json files, but this storage behavior is not surfaced in the top-level capability declaration and may retain user-supplied links, keywords, and collected data. Undeclared persistence increases privacy and data-handling risk, especially for research workflows that may include sensitive targets or URLs.
The documentation explicitly states that every execution is archived to local logs/...json files, but this storage behavior is not surfaced in the top-level capability declaration and may retain user-supplied links, keywords, and collected data. Undeclared persistence increases privacy and data-handling risk, especially for research workflows that may include sensitive targets or URLs.
The documentation explicitly states that every execution is archived to local logs/...json files, but this storage behavior is not surfaced in the top-level capability declaration and may retain user-supplied links, keywords, and collected data. Undeclared persistence increases privacy and data-handling risk, especially for research workflows that may include sensitive targets or URLs.
The documentation explicitly states that every execution is archived to local logs/...json files, but this storage behavior is not surfaced in the top-level capability declaration and may retain user-supplied links, keywords, and collected data. Undeclared persistence increases privacy and data-handling risk, especially for research workflows that may include sensitive targets or URLs.
The documentation explicitly states that every execution is archived to local logs/...json files, but this storage behavior is not surfaced in the top-level capability declaration and may retain user-supplied links, keywords, and collected data. Undeclared persistence increases privacy and data-handling risk, especially for research workflows that may include sensitive targets or URLs.
The documentation explicitly states that every execution is archived to local logs/...json files, but this storage behavior is not surfaced in the top-level capability declaration and may retain user-supplied links, keywords, and collected data. Undeclared persistence increases privacy and data-handling risk, especially for research workflows that may include sensitive targets or URLs.
The documentation explicitly states that every execution is archived to local logs/...json files, but this storage behavior is not surfaced in the top-level capability declaration and may retain user-supplied links, keywords, and collected data. Undeclared persistence increases privacy and data-handling risk, especially for research workflows that may include sensitive targets or URLs.
The documentation explicitly states that every execution is archived to local logs/...json files, but this storage behavior is not surfaced in the top-level capability declaration and may retain user-supplied links, keywords, and collected data. Undeclared persistence increases privacy and data-handling risk, especially for research workflows that may include sensitive targets or URLs.
The description says the skill should trigger even when the user did not explicitly ask to search Xiaohongshu, as long as intent is loosely related to Xiaohongshu content acquisition. That is an overly broad activation rule that can cause the agent to invoke an external data-collection workflow unexpectedly, sending user prompts, keywords, or URLs to a third-party service without sufficiently explicit user intent.
Referenced artifact was not completely inspected
- "看看这篇小红书笔记讲了什么、数据怎么样: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy'"
Referenced artifact was not completely inspected
- "看看这篇小红书笔记讲了什么、数据怎么样: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy'"
Referenced artifact was not completely inspected
- "看看这篇小红书笔记讲了什么、数据怎么样: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy'"
Referenced artifact was not completely inspected
- "看看这篇小红书笔记讲了什么、数据怎么样: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy'"
Referenced artifact was not completely inspected
- "分析这条小红书笔记评论区的主要观点: node src/xiaohongshu/comment-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"
Referenced artifact was not completely inspected
- "分析这条小红书笔记评论区的主要观点: node src/xiaohongshu/comment-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"
Referenced artifact was not completely inspected
- "分析这条小红书笔记评论区的主要观点: node src/xiaohongshu/comment-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"
Referenced artifact was not completely inspected
- "分析这条小红书笔记评论区的主要观点: node src/xiaohongshu/comment-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"
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 declares use of a sensitive environment variable (GUAIKEI_API_TOKEN) but does not declare an explicit tool/permission scope. That weakens reviewability and least-privilege controls, making it harder for operators to understand what secrets and capabilities the skill requires before execution.
The skill states that each execution is automatically archived to timestamped JSON log files, but users are not clearly warned up front about local retention of queries, URLs, and resulting content. Silent persistence can expose sensitive research activity, personal data in comments, or proprietary analysis targets to later disclosure on the host system.
The README states that all task results are automatically saved to a local logs directory, but it does not provide a clear warning about persistence, retention, access controls, or how sensitive scraped content should be handled. Because this skill collects large volumes of public social-media data and may include URLs, comments, account identifiers, and analysis outputs, silent persistence increases the risk of unintended disclosure on shared machines, CI runners, or multi-user environments.
This code sends an API token and user-provided note URL to a remote endpoint via HTTP, which is a privacy- and security-relevant operation. While the function names and comments describe the API purpose, there is no visible confirmation prompt or user-facing disclosure in this file that user data and credentials are being transmitted.
Detected: suspicious.exposed_secret_literal