Back to skill

Security audit

Equity Research

Security checks for vulnerabilities and agentic risk

Overview

This skill is an equity-research wrapper, but its actual work is delegated to mutable local scripts outside the reviewed artifact and runtime dependency installation.

Review this before installing. It is not self-contained: using it means trusting separate local stock-price, fundamentals, and market-news scripts plus their uv-resolved Python dependencies. Install only if those referenced skills are present, reviewed, version-controlled or otherwise integrity-protected, and if your agent executes ticker arguments safely rather than by shell interpolation.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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
Findings (3)

T07 · Tool Hijacking and Spoofing

Error
Location
SKILL.md:29
Finding

Execution of Mutable, Unaudited External Scripts

Content
View full analysis
``` ```bash uv run /root/.openclaw/workspace/skills/stock-fundamentals/src/main.py ``` ```bash # For US-listed stocks uv run /root/.openclaw/workspace/skills/market-news-brief/src/main.py US # For German/European stocks (e.g. RHM.DE, SAP.DE, ASML.AS) uv run /root/.openclaw/workspace/skills/market-news-brief/src/main.py EUROPE # For Japanese stocks (e.g. 7203.T) uv run /root/.openclaw/workspace/skills/market-news-brief/src/main.py JAPAN # For Korean stocks (e.g. 005930.KS) uv run /root/.openclaw/workspace/skills/market-news-brief/src/main.py SOUTH_KOREA ``` ### Technical Analysis The skill delegates all substantive processing to Python scripts stored under absolute paths outside the reviewed project. None of these scripts is included in the artifact, so their source code, integrity, permissions, dependencies, and runtime behavior cannot be verified from the audited package. The effective behavior of the skill can consequently change without any modification to `SKILL.md`. An attacker or compromised component with write access to the referenced skill directories could replace one of the expected scripts with attacker-controlled code. Calls that appear to be legitimate equity-research operations would then execute the substituted logic through `uv run`. This is classified as tool hijacking because trusted-looking local tool invocations can be redirected to mutable, independently managed implementations. ### Attack Path 1. An attacker obtains write access to one of the referenced external directories, such as `/root/.openclaw/workspace/skills/stock-fundamentals/`. 2. The attacker modifies or replaces `src/main.py` with malicious Python code. 3. A user ...[truncated 902 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:95
Finding

Automatic Installation of Unpinned Third-Party Dependencies

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:29
Finding

Potential Shell Command Injection Through Unquoted Ticker Substitution

Content
View full analysis
``` ```bash uv run /root/.openclaw/workspace/skills/stock-fundamentals/src/main.py ``` ### Technical Analysis The command templates place the user-supplied ticker in an unquoted shell position. The document states that ticker symbols must be valid Yahoo Finance tickers, but it does not define an enforceable validation expression, require rejection of shell metacharacters, or require process execution without a shell. If an implementation performs direct textual substitution and sends the resulting command to a shell, characters such as `;`, `&&`, `|`, command substitutions, redirects, or line breaks can alter command structure. Merely instructing the user to provide a valid ticker is not a security boundary. The exploitability depends on how the hosting agent invokes the command. Structured process execution with a separately supplied argument array would prevent shell interpretation, while direct shell execution after interpolation would expose command injection. ### Attack Path 1. An attacker supplies ticker text containing shell syntax instead of a valid ticker, for example a ticker followed by a command separator and an operating-system command. 2. The agent substitutes that value directly for ``. 3. The resulting command is executed through a shell without strict validation or argument separation. 4. The shell runs the intended Python script and then interprets the injected syntax as additional commands. 5. The injected command executes with the privileges of the agent runtime. ### Impact Assessment If the command is invoked through a shell, exploitation can result in arbitrary command execution under the runtime account. An attacker could read or modify ...[truncated 389 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.