Back to skill

Security audit

xhs-keyword-search

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed Xiaohongshu public-data lookup skill, but it uses a third-party API token and automatically saves returned data locally.

Install only if you are comfortable sending Xiaohongshu keywords, note/profile URLs, and returned public-content data to guaikei.com using your GUAIKEI_API_TOKEN. Treat the generated logs as potentially sensitive, especially URLs containing xsec_token values, and clean or protect the logs directory on shared machines.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
src/validate/url.js:3
Finding

Bypassable URL Allowlist Permits Attacker-Controlled URLs

Content
View full analysis
{ return await postJson( "/api/xiaohongshu/detail/url", { _: Date.now(), token: token }, { url: url, limit: limit }, ); }, ``` ### Technical Analysis The URL validator checks whether the complete string starts with `https://`, but it identifies permitted destinati ...[truncated 2488 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
src/utils/log.js:24
Finding

Sensitive Xiaohongshu Links and API Results Are Persisted with Default File Permissions

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (54)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation advertises automatic log archival and the static finding indicates local filesystem writes, yet the permission scope is not clearly declared. Undocumented or under-scoped file output can create privacy and security risks by storing queried URLs, returned content, or API-related metadata on disk where other users or processes may access it.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation advertises automatic log archival and the static finding indicates local filesystem writes, yet the permission scope is not clearly declared. Undocumented or under-scoped file output can create privacy and security risks by storing queried URLs, returned content, or API-related metadata on disk where other users or processes may access it.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation advertises automatic log archival and the static finding indicates local filesystem writes, yet the permission scope is not clearly declared. Undocumented or under-scoped file output can create privacy and security risks by storing queried URLs, returned content, or API-related metadata on disk where other users or processes may access it.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation advertises automatic log archival and the static finding indicates local filesystem writes, yet the permission scope is not clearly declared. Undocumented or under-scoped file output can create privacy and security risks by storing queried URLs, returned content, or API-related metadata on disk where other users or processes may access it.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation advertises automatic log archival and the static finding indicates local filesystem writes, yet the permission scope is not clearly declared. Undocumented or under-scoped file output can create privacy and security risks by storing queried URLs, returned content, or API-related metadata on disk where other users or processes may access it.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation advertises automatic log archival and the static finding indicates local filesystem writes, yet the permission scope is not clearly declared. Undocumented or under-scoped file output can create privacy and security risks by storing queried URLs, returned content, or API-related metadata on disk where other users or processes may access it.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation advertises automatic log archival and the static finding indicates local filesystem writes, yet the permission scope is not clearly declared. Undocumented or under-scoped file output can create privacy and security risks by storing queried URLs, returned content, or API-related metadata on disk where other users or processes may access it.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation advertises automatic log archival and the static finding indicates local filesystem writes, yet the permission scope is not clearly declared. Undocumented or under-scoped file output can create privacy and security risks by storing queried URLs, returned content, or API-related metadata on disk where other users or processes may access it.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 41)May include surrounding context.

md
- "分析这条小红书笔记评论区的主要观点和负面反馈: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 107)May include surrounding context.

md
- "分析这条小红书笔记评论区的主要观点和负面反馈: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 241)May include surrounding context.

md
- "分析这条小红书笔记评论区的主要观点和负面反馈: node src/xiaohongshu/detail-cli.js --url 'https://www.xiaohongshu.com/explore/xxx?xsec_token=yyy' --limit 100"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 42)May include surrounding context.

md
- "看这个小红书博主最近 20 条作品都在发什么: node src/xiaohongshu/post-cli.js --url 'https://www.xiaohongshu.com/user/profile/xxx?xsec_token=yyy' --limit 20"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 108)May include surrounding context.

md
- "看这个小红书博主最近 20 条作品都在发什么: node src/xiaohongshu/post-cli.js --url 'https://www.xiaohongshu.com/user/profile/xxx?xsec_token=yyy' --limit 20"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 253)May include surrounding context.

md
- "看这个小红书博主最近 20 条作品都在发什么: node src/xiaohongshu/post-cli.js --url 'https://www.xiaohongshu.com/user/profile/xxx?xsec_token=yyy' --limit 20"

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The implementation in this file performs blogger-profile and published-post retrieval via /api/xiaohongshu/post/url and /api/xiaohongshu/post/info, which does not match the declared skill purpose of keyword-based public note search. This capability mismatch is dangerous because it can cause users, reviewers, or downstream agents to invoke broader or different data access than intended, undermining trust boundaries and potentially enabling collection of profile-related content outside the advertised scope.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest describes a skill whose purpose is keyword-based Xiaohongshu public note search with filters and sorting, but this file implements a different operation: given a note URL, it creates and retrieves a comment/detail task and returns note/comment details. This is a substantive behavior expansion beyond search, not just an implementation detail of searching.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The CLI schema and help text define the tool as accepting a creator profile URL and fetching that profile's posts, which materially conflicts with the manifest claiming keyword-based Xiaohongshu search. This kind of capability mismatch is dangerous because users and downstream agents may grant access or trust results under false assumptions, causing unintended collection of profile-specific data and policy bypass through deceptive packaging.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The core execution path creates and retrieves a 'post' task using a profile URL and limit, confirming the skill performs profile-post retrieval instead of keyword search. In an agent setting, this is a security-relevant deception issue because it can make reviewers and users believe the tool has narrower or different data-access behavior than it actually does.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill declares access to a sensitive environment variable (GUAIKEI_API_TOKEN) but does not declare any explicit tool scope or permission boundary. That weakens least-privilege guarantees and makes it harder for a host agent or reviewer to understand what the skill is allowed to access, increasing the chance of unintended secret exposure or overbroad execution.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The package metadata uses Chinese-only natural-language description and keywords, which indicates the skill is presented in a single language without any visible opt-in or multilingual alternative. Under the policy rule, forcing a specific language or locale without user choice or a documented justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The README specifically claims comment-analysis and comment-detail retrieval, which exceeds the stated keyword-search purpose of the skill. In a scraping/data-analysis context, undeclared comment collection is more sensitive because it expands the type and volume of scraped public content and may create compliance, privacy, and review gaps.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README advertises capabilities beyond the declared keyword-search scope, including note detail/comment analysis and creator monitoring. This scope mismatch can mislead users, reviewers, and downstream agents about what the skill actually does, reducing transparency and increasing the chance that broader data collection features are used without proper review or authorization.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README states that all task results are automatically saved to the logs directory, but does not clearly disclose that those files may contain scraped URLs, keywords, interaction metrics, or analysis outputs. Automatic persistence of scraping results increases the risk of unintended local data retention, leakage to other users/processes, and accidental redistribution of collected data.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The changelog advertises capabilities materially broader than the declared skill scope, including note-detail retrieval, comment sentiment analysis, and creator-work monitoring. This scope drift can mislead reviewers and users about what data the skill may access or process, weakening trust boundaries and increasing the chance of undisclosed data collection or higher-risk downstream behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation advertises three operational capabilities—keyword search, note detail/comment retrieval, and creator post retrieval—while the manifested skill metadata only declares keyword search. This scope mismatch can cause callers, reviewers, or policy layers to underestimate what the skill can do, enabling unreviewed data access paths and broader collection of public content than expected.

Content

No source excerpt is available for this finding.