Back to skill

Security audit

XHunt Hot Tweets

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward XHunt trending-tweet summarizer with disclosed network use and no hidden execution, persistence, or destructive behavior.

Install only from a source you trust, and prefer a pinned ClawHub package version or reviewed Git commit. Be aware that the skill is designed to fetch public XHunt pages and produce Chinese summaries, and its broad trigger examples may activate on generic hot-post requests.

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:24
Finding

Unpinned Package and Repository Sources in Installation Instructions

Content
View full analysis

Vulnerability Details

File Location: README.md:24-39; mirrored in README.zh-CN.md:24-39
Vulnerability Type: Unpinned third-party dependencies and mutable installation sources
Risk Level: Medium

Vulnerable Code

The following installation instructions appear in both documentation files:

bash
npx clawhub login
npx clawhub install xhunt-hot-tweets
openclaw skills info xhunt-hot-tweets
bash
git clone https://github.com/DoTheWorkNow/xhunt-hot-tweets-skill.git
mkdir -p ~/.openclaw/workspace/skills/xhunt-hot-tweets
rsync -a --delete ./xhunt-hot-tweets-skill/ ~/.openclaw/workspace/skills/xhunt-hot-tweets/
openclaw skills info xhunt-hot-tweets

Technical Analysis

The npx clawhub commands resolve and execute a registry-provided package without specifying an audited version or integrity digest. The code executed by npx can therefore differ from the version that existed when this project was reviewed.

The GitHub installation path similarly clones the repository's mutable default branch. It does not check out a reviewed commit or signed release and performs no checksum or signature verification. The resulting files are then copied into the active OpenClaw skills directory using rsync --delete.

These installation paths create a supply-chain trust boundary in which compromise of the package registry account, package publisher, GitHub account, repository, or default branch could replace the reviewed content. The current repository snapshot contains no embedded executable scripts or malicious payloads; the risk arises from the installation process accepting future mutable content without verification.

Attack Path

  1. An attacker compromises the clawhub registry package, its publisher account, the GitHub repository, or an associated maintainer account.
  2. The attacker publishes a modified package version or replaces content on the repository's default branch.
  3. A user foll ...[truncated 1144 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the ClawHub command-line package to a reviewed version rather than allowing npx to resolve the latest release:
    bash
    npx clawhub@<reviewed-version> login
    npx clawhub@<reviewed-version> install xhunt-hot-tweets
    
  2. Where supported, use a lockfile, package-manager integrity metadata, or an expected package digest to verify the downloaded package.
  3. Install from a signed release or check out an immutable, reviewed Git commit:
    bash
    git clone https://github.com/DoTheWorkNow/xhunt-hot-tweets-skill.git
    cd xhunt-hot-tweets-skill
    git checkout --detach <reviewed-commit-sha>
    
  4. Publish the expected commit SHA and SHA-256 digest through a separate trusted release channel.
  5. Verify release signatures, commit signatures, or checksums before copying files into the active skills directory.
  6. Review the downloaded file tree before running rsync --delete, particularly if future releases add scripts, hooks, executables, or additional Agent instructions.
  7. Apply the same hardened installation guidance consistently to both README.md and README.zh-CN.md.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (14)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Line L23 says the skill "Enforces stable 3-line output per item with Chinese summaries," which is a natural-language statement of forced language behavior. Under the policy rules, forcing a specific language without user opt-in is a locale/language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The README states that the skill 'returns structured Chinese summaries,' which imposes a specific language output by default. Because no opt-in, locale selection, or justification is provided in the description, this appears to violate the language/locale policy for natural-language behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases are broad, everyday requests such as '四小时最火帖子' and '给我热门帖子链接+摘要', with no clear activation boundaries. That increases the chance of unintended invocation, causing the agent to fetch external content when the user may have meant a general discussion rather than use of this specific skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The README states the skill outputs structured Chinese summaries without indicating that this depends on user preference or locale. That can cause undesired language forcing, which is a policy and UX issue and may mis-handle requests from users expecting another language.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · README.md (reported line 36)May include surrounding context.

bash
git clone https://github.com/DoTheWorkNow/xhunt-hot-tweets-skill.git
mkdir -p ~/.openclaw/workspace/skills/xhunt-hot-tweets
rsync -a --delete ./xhunt-hot-tweets-skill/ ~/.openclaw/workspace/skills/xhunt-hot-tweets/
openclaw skills info xhunt-hot-tweets

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · README.zh-CN.md (reported line 36)May include surrounding context.

bash
git clone https://github.com/DoTheWorkNow/xhunt-hot-tweets-skill.git
mkdir -p ~/.openclaw/workspace/skills/xhunt-hot-tweets
rsync -a --delete ./xhunt-hot-tweets-skill/ ~/.openclaw/workspace/skills/xhunt-hot-tweets/
openclaw skills info xhunt-hot-tweets

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger phrases are broad, generic requests like '四小时最火帖子' and '给我热门帖子链接+摘要', which can overlap with normal user intent and cause the skill to activate unintentionally. Unintended invocation may route user queries to external content retrieval from XHunt, increasing privacy, policy, and content-selection risks without explicit user consent.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger description uses broad natural-language phrases such as “热门帖子”, “Top20”, and “给我链接+摘要”, which can match many ordinary user requests beyond the intended X/Twitter-hot-posts use case. This raises the risk of unintended activation, causing the agent to fetch external content unexpectedly and override more appropriate skills or user expectations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill description mandates Chinese output regardless of user preference, which can cause the agent to ignore the user's requested language or established conversation language. While not typically a direct security exploit, it is a policy and UX safety issue because it can override user intent and produce surprising behavior.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest states the skill returns 'structured Chinese summaries,' which imposes a specific language by default. This is a natural-language locale policy issue because the file does not offer user opt-in or explain a region-specific need for Chinese output.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.