Back to skill

Security audit

Yahoo Finance FOREX

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for fetching FOREX data, but it gives prescriptive BUY/SELL trading guidance without clear financial-risk disclosure.

Review this carefully before installing if you might act on its trading outputs. Treat its sentiment and BUY/SELL/HOLD labels as informational signals only, not personalized financial advice, and install/run it in an environment where outbound Yahoo Finance requests and an unpinned pip dependency are acceptable.

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
SKILL.md:10
Finding
Mutable Third-Party Dependency Installed Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 10-15 **Vulnerability Type**: Unpinned dependency and missing package integrity verification **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: openclaw: emoji: "💱" requires: bins: ["python3"] install: - id: pip kind: pip packages: ["yfinance>=0.2.40"] ``` The mutable installation instruction is also repeated at `SKILL.md:181`: ```text Install yfinance: `pip install yfinance>=0.2.40` ``` ### Technical Analysis The dependency constraint `yfinance>=0.2.40` specifies only a minimum version. Consequently, installation may resolve to any newer package release available at the time the Skill is installed. The project does not include a lockfile, cryptographic package hashes, an exact audited version, or a verified vendored dependency. This creates a supply-chain risk because the code reviewed during this audit may not be the dependency code that executes in a future installation. If a later package release or its distribution channel is compromised, attacker-controlled code could execute during package installation or when `yfinance` is imported by `scripts/fetch_forex_news.py`. No evidence was found that the currently declared `yfinance` package is malicious. The vulnerability is the unsafe dependency-resolution policy and lack of integrity controls. ### Attack Path 1. An attacker compromises the dependency publisher account, package repository, release process, or another component of the dependency distribution chain. 2. The attacker publishes a malicious version of `yfinance` that satisfies `>=0.2.40`. 3. A user or Agent installs the Skill after the malicious release becomes available. 4. The package installer resolves the mutable requirement to the compromised version because no exact version or hash is enforced. 5. Malicious dependency code executes during installation, import, or normal use. 6. The code runs with the privileges ...[truncated 755 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace the lower-bound requirement with an exact, reviewed version, for example: ```yaml packages: ["yfinance==<audited-version>"] ``` 2. Generate and commit a dependency lockfile that includes all transitive dependencies. 3. Require cryptographic hashes for downloaded distributions, such as through a hash-pinned requirements file and `pip install --require-hashes`. 4. Restrict installation to the intended authenticated package index and disable unintended additional indexes to reduce dependency-confusion exposure. 5. Prefer reviewed wheel artifacts and verify package provenance where repository tooling supports it. 6. Run installation and execution in a least-privileged virtual environment or container without unnecessary credentials or host-file access. 7. Establish a controlled update process that reviews release notes and dependency changes, scans updated artifacts, and refreshes pins and hashes only after validation. 8. Update the troubleshooting command at `SKILL.md:181` so it uses the same exact version and integrity-controlled installation procedure. ]]>
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
Findings (4)

Missing User Warnings

Medium
Confidence
93% confidence
Finding
This reference file includes prescriptive trading-oriented content such as 'Best Practices,' market timing guidance, correlation use, and risk-factor discussion without any disclaimer that the material is informational only and not financial advice. In a skill explicitly designed to fetch FOREX news, analyze sentiment, and provide trading context, users may reasonably treat this as actionable investment guidance and make risky decisions based on it.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The guide presents BUY/HOLD/SELL outputs as actionable recommendations without a clear, prominent disclaimer that this is not financial advice and that acting on it can cause financial loss. In a trading-focused skill, users may over-trust these outputs as decision support, especially since the document describes scoring thresholds and recommended actions in a prescriptive way.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The examples and workflow repeatedly instruct users to consider long and short positions, giving concrete trading actions without an upfront risk warning. Because this skill is specifically about FOREX market analysis, the surrounding context increases the chance that users will rely on these examples operationally and incur real financial harm.

Missing User Warnings

Low
Confidence
92% confidence
Finding
The documentation shows commands that fetch live Yahoo Finance data but does not warn users that running them makes outbound network requests and may disclose request metadata such as IP address, timing, queried symbols, and environment-specific network context. In an agent skill context, this matters because users or integrators may execute examples in restricted, privacy-sensitive, or air-gapped environments without realizing the examples contact a third-party service.

Static analysis

No suspicious patterns detected.