Back to skill

Security audit

Lemon8生活方式采集

Security checks for vulnerabilities and agentic risk

Overview

This Lemon8 skill is mostly a read-only data API assistant, but it includes under-disclosed automatic fallback instructions that can call unrelated Douyin endpoints.

Review before installing. Use this only if you are comfortable sending Lemon8 search terms, share links, content IDs, user IDs, and profile or follower-list requests to MaxHub/aconfig.cn with your API key. The publisher should remove or explicitly document the Douyin fallback endpoints and pin the installer command before this is treated as a clean Lemon8-only skill.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (1)

T08 · Insecure Dependencies

Warning
Location
README.md:14
Finding

Unpinned Package Execution in Installation Instructions

Content
View full analysis

Vulnerability Details

File Location: README.md:14-18 and README_CN.md:14-18
Vulnerability Type: Unpinned third-party package execution
Risk Level: Medium

Vulnerable Code

README.md:14-18:

markdown
## Install

```bash
npx clawhub install maxhub-lemon8
text

`README_CN.md:14-18`:

```markdown
## 安装

```bash
npx clawhub install maxhub-lemon8
text

### Technical Analysis

The documented installation command uses `npx` to resolve and execute the `clawhub` package without specifying an exact package version or verifying its integrity.

When the package is not already available locally, `npx` may retrieve executable package content from the configured npm registry. The effective code executed during installation can therefore change after this Skill has been reviewed. The repository contains no lock file, integrity hash, vendored installer, or other mechanism that constrains which version of the external package will run.

This creates a supply-chain exposure. If the package, publisher account, package registry, dependency tree, or local npm registry configuration is compromised, the command could execute code that was not included in this audit. The audited Skill itself does not contain evidence that the referenced package is malicious; the vulnerability is the absence of version and integrity controls around executable dependency retrieval.

### Attack Path

1. An attacker compromises the `clawhub` package, one of its executable dependencies, its publisher account, or the registry from which it is resolved.
2. Alternatively, an attacker influences the victim's npm configuration so that `npx` resolves the package through an untrusted registry.
3. The victim follows the README and runs:
   ```bash
   npx clawhub install maxhub-lemon8
   ```
4. `npx` retrieves the currently resolved package rather than a version whose content was fixed at audit time.
5. Package initializat
...[truncated 1051 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the installer to a specifically reviewed version:

    bash
    npx --yes clawhub@<audited-version> install maxhub-lemon8
    
  2. Document the expected npm registry explicitly and advise users to verify their registry configuration before installation:

    bash
    npm config get registry
    
  3. Publish and document a cryptographic integrity value or signed release provenance for the installer package. Verify that value before executing downloaded content.

  4. Prefer a lockfile-backed installation workflow where practical, ensuring that both direct and transitive dependency versions are fixed.

  5. Avoid recommending installation from an elevated shell. State that the installer should run with ordinary user privileges and only the filesystem permissions required to install the Skill.

  6. For higher-assurance deployments, download the pinned package without executing it, inspect or verify its contents, and only then invoke the verified local artifact.

  7. Apply the corrected, pinned command consistently in both README.md and README_CN.md.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (27)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The manifest presents the skill as a Lemon8-only data assistant, yet the runtime instructions include calling Douyin endpoints during error handling. A mismatch between declared purpose and actual network behavior is dangerous because reviewers and users may authorize the skill under false assumptions about what services it contacts.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

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

md
| 禁止行为 | 正确做法 |
|----------|----------|
| ❌ 自行拼接路径(如 `/api/v1/douyin/search/xxx`) | ✅ 使用 Action Table 或 `<!-- Full path: -->` 中的路径 |
| ❌ 猜测参数名(如把 `aweme_id` 写成 `video_id`) | ✅ 使用 Action Table 或 reference 文件中的参数名 |
| ❌ 假设 v1/v2/v3 参数兼容 | ✅ 降级时重新读取对应版本的参数文档 |
| ❌ 调用 `fetch_hot_search_list` 或 `app/v3/fetch_video_comments` | ✅ 使用替代端点(见废弃标注) |

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

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

md
| 禁止行为 | 正确做法 |
|----------|----------|
| ❌ 自行拼接路径(如 `/api/v1/douyin/search/xxx`) | ✅ 使用 Action Table 或 `<!-- Full path: -->` 中的路径 |
| ❌ 猜测参数名(如把 `aweme_id` 写成 `video_id`) | ✅ 使用 Action Table 或 reference 文件中的参数名 |
| ❌ 假设 v1/v2/v3 参数兼容 | ✅ 降级时重新读取对应版本的参数文档 |
| ❌ 调用 `fetch_hot_search_list` 或 `app/v3/fetch_video_comments` | ✅ 使用替代端点(见废弃标注) |

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly claims it is limited to legitimate read-only Lemon8 APIs, but elsewhere defines fallback behavior to unrelated Douyin endpoints. This inconsistency can cause cross-platform data access beyond the advertised scope, weakening user trust and creating a path for unintended or unauthorized requests to a different service family.

Content

No source excerpt is available for this finding.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

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

md
| "analyze" / "分析一下" | Switch to analyze mode |
| "compare with X" / "和X对比" | Add X as second query |

## Output Guidelines

1. **Language consistency** — ALL output matches user's detected language.
2. **Markdown links** — All URLs in `[text](url)` format.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-post-user.md (reported line 11)May include surrounding context.

md
`GET /api/v1/lemon8/app/fetch_discover_tab_information_tabs`

<!-- Full path: /api/v1/lemon8/app/fetch_discover_tab_information_tabs -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-post-user.md (reported line 64)May include surrounding context.

md
`GET /api/v1/lemon8/app/fetch_post_detail`

<!-- Full path: /api/v1/lemon8/app/fetch_post_detail -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-post-user.md (reported line 89)May include surrounding context.

md
`GET /api/v1/lemon8/app/fetch_topic_info`

<!-- Full path: /api/v1/lemon8/app/fetch_topic_info -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-post-user.md (reported line 151)May include surrounding context.

md
`GET /api/v1/lemon8/app/fetch_user_follower_list`

<!-- Full path: /api/v1/lemon8/app/fetch_user_follower_list -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-post-user.md (reported line 205)May include surrounding context.

md
`GET /api/v1/lemon8/app/fetch_user_profile`

<!-- Full path: /api/v1/lemon8/app/fetch_user_profile -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-post-user.md (reported line 255)May include surrounding context.

md
`POST /api/v1/lemon8/app/get_item_ids`

<!-- Full path: /api/v1/lemon8/app/get_item_ids -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-post-user.md (reported line 278)May include surrounding context.

md
`GET /api/v1/lemon8/app/get_user_id`

<!-- Full path: /api/v1/lemon8/app/get_user_id -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-post-user.md (reported line 303)May include surrounding context.

md
`POST /api/v1/lemon8/app/get_user_ids`

<!-- Full path: /api/v1/lemon8/app/get_user_ids -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-search-discover.md (reported line 11)May include surrounding context.

md
`GET /api/v1/lemon8/app/fetch_discover_banners`

<!-- Full path: /api/v1/lemon8/app/fetch_discover_banners -->

### Parameters

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/api-search-discover.md (reported line 53)May include surrounding context.

md
`GET /api/v1/lemon8/app/fetch_hot_search_keywords`

<!-- Full path: /api/v1/lemon8/app/fetch_hot_search_keywords -->

### Parameters

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The README instructs users to run npx clawhub install maxhub-lemon8 without pinning a specific package version. This can cause users to execute whatever version is currently published under that package name, creating a supply-chain risk if a malicious or compromised release is pushed later.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The README instructs users to run npx clawhub install maxhub-lemon8 without pinning a specific package version. This creates a supply-chain risk because users may fetch whatever version is current at execution time, including a compromised or maliciously updated release. In a setup/install context, this is more dangerous because it directly influences how users bootstrap the skill and can lead to arbitrary code execution on the user's machine.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example trigger words are extremely broad (搜索, 发现, 帖子, 用户, 分享, 链接) and overlap with normal conversation. In agent or assistant environments, overly generic triggers can cause accidental invocation of the skill, leading to unintended data access, confusing tool routing, or privacy issues if user queries are sent to the external service without clear intent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill describes API use but does not clearly warn users that their queries and requested data will be sent to a third-party service. This weak transparency can expose sensitive search terms, identifiers, or analysis targets to an external provider without sufficiently informed consent.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

The skill is designed to send requests, including user-supplied parameters and an authorization bearer token, to an external API endpoint. External transmission is expected for this integration, but it still represents a real security/privacy concern because user data leaves the host environment and depends on the trustworthiness and handling practices of the third party.

Content

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

md
maxhub_auth_header="Authorization: Bearer ${MAXHUB_API_KEY}"

# GET example
curl -s "https://www.aconfig.cn/api/v1/lemon8/{endpoint}?{params}" \
  -H "$maxhub_auth_header"

# POST example

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger lists for routing and mode selection include very generic words such as "information", "list", "find", "show me", and "analyze", which can appear in many unrelated user requests. The file does not provide exclusion conditions or negative examples to clarify when these triggers should not activate, increasing the risk of unintended invocation or misrouting.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The downgrade table introduces Douyin fallback endpoints without justification for a Lemon8 assistant. Even if read-only, this broadens the reachable API surface and may transmit user queries or identifiers to an unrelated platform, increasing privacy, compliance, and misuse risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation exposes endpoints for retrieving follower lists, following lists, and user profiles without any privacy, authorization-scope, or acceptable-use warning. In a data collection skill, this increases the likelihood of agents or users treating social-graph and profile extraction as routine, which can enable bulk profiling, surveillance, or privacy-invasive use even if the API itself requires authentication.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The instruction "If uncertain, default to Search & Discover" makes the activation/routing boundary unclear because ambiguous requests are forced into a broad category rather than requiring clarification. This can cause the skill to proceed on weak intent matches instead of confirming user intent first.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
75% confidence
Finding

The file title and many descriptions are primarily in Chinese with some English translations, but there is no statement about intended language audience or option to choose a preferred language. This can conflict with language/locale policy expectations when a skill implicitly forces a particular language without explicit opt-in or justification.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.