Back to skill

Security audit

Claw Stock Watcher Pro

Security checks for vulnerabilities and agentic risk

Overview

The skill is a straightforward Chinese stock watchlist helper that stores a local watchlist and fetches stock-page data, with some usability and safety caveats but no hidden or malicious behavior found.

Install only if you are comfortable with a skill storing a local stock watchlist under ~/.clawdbot/stock_watcher and fetching stock pages from 10jqka.com.cn. Back up the watchlist before using clear or uninstall, and consider installing Python dependencies in a virtual environment with pinned versions.

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

T08 · Insecure Dependencies

Warning
Location
scripts/install.sh:18
Finding

Unpinned Third-Party Dependencies Create Supply-Chain Risk

Content
View full analysis
/dev/null; then echo "Warning: Required Python packages (requests, beautifulsoup4) not found." echo "You may need to install them with: pip install requests beautifulsoup4" fi ``` `README.md:76-79`: ```bash Ensure you have Python 3 and required packages installed: ```bash pip3 install requests beautifulsoup4 ``` ``` ### Technical Analysis The project instructs users to install `requests` and `beautifulsoup4` without specifying reviewed versions, package hashes, a lockfile, a trusted package index, or an isolated environment. Consequently, the effective dependency code can change independently of the audited skill. The package names shown are established packages, and the project does not intentionally reference a known malicious package. The risk arises from mutable dependency resolution: a compromised upstream release, package-index compromise, or malicious dependency update could be selected when a user follows the documented command. The installation script only prints the command rather than executing it automatically. Exploitation therefore requires a user or automation system to follow the installation guidance. ### Attack Path 1. An attacker compromises a dependency release, its maintainer account, or the package-distribution channel. 2. A new malicious or compromised version becomes the version selected by an unconstrained `pip install`. 3. A user follows the command in `README.md` or the recommendation printed by `scripts/install.sh`. 4. Pip downloads and installs the mutable dependency version. 5. Malicious package installation behavior or subsequently imported package code executes under the inst ...[truncated 558 chars]
Remediation
View remediation
\ --hash=sha256: beautifulsoup4== \ --hash=sha256: ``` 2. Install with hash verification: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Generate and commit a lockfile using a dependency-locking tool, including pinned transitive dependencies. 4. Specify an approved HTTPS package index rather than relying on ambient pip configuration. 5. Recommend installation inside a dedicated virtual environment instead of the user's global Python environment. 6. Regularly review and update pinned versions after security testing rather than allowing automatic selection of new releases. 7. Update both `README.md` and `install.sh` so their dependency instructions remain consistent. ]]>

T09 · Insecure Skill Coding Practices

Note
Location
scripts/add_stock.py:12
Finding

Missing Input Validation Allows Watchlist Record and Terminal-Output Injection

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

There is a description/behavior mismatch because the declared purpose presents the skill as a full watchlist manager and monitor, but the provided code chunk is narrowly limited to summarizing performance for entries already present in a local watchlist file. The network access to 10jqka.com.cn is consistent with the description, and reading a local watchlist file is also aligned with monitoring a watchlist. However, core declared capabilities such as adding, removing, and listing stocks are absent from this code. Therefore, the code does not fully or accurately represent the broader declared functionality.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The README documents a destructive 'clear watchlist' command with no warning, confirmation guidance, or note that it irreversibly deletes user-maintained data. In an agent or copy-paste workflow, this increases the chance of accidental data loss because users may run the command without understanding its effect.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The uninstallation section provides a command that removes both the skill and all watchlist data, but the warning appears only after the command rather than before it. This creates a realistic risk of accidental irreversible deletion, especially when users skim documentation or automated agents execute the first available uninstall instruction.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill describes file read/write and network-backed behavior but does not declare any explicit tool scope or permissions boundaries. In an agent environment, this can lead to overbroad capability exposure, making it harder to enforce least privilege and increasing the risk of unintended filesystem or network access.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill advertises a full watchlist clear operation without an explicit warning or confirmation step for irreversible data loss. In an agentic context, destructive operations can be triggered too easily, causing accidental deletion of user-maintained data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The uninstall instructions state that all related files are completely removed, but do not clearly warn that stored watchlist data will also be deleted. Users may reasonably assume uninstalling removes only the skill and not their personal tracked data, leading to unintended data loss.

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 · scripts/install.sh (reported line 8)May include surrounding context.

sh
echo "Installing stock-watcher skill dependencies..."

# Create the watchlist directory
mkdir -p ~/.clawdbot/stock_watcher

# Create empty watchlist file if it doesn't exist

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

Several core usage sections are written in Chinese while the surrounding document is in English, and the skill does not state that it is Chinese-only or offer an opt-in language choice. This can violate a language/locale policy when a specific language is effectively imposed without user selection.

Content

No source excerpt is available for this finding.