Back to skill

Security audit

llmfit

Security checks for vulnerabilities and agentic risk

Overview

The skill does what it says, but it relies on installing an unpinned third-party executable and can change local model configuration, so users should review it before installing.

Install only if you trust the llmfit publisher and distribution channel. Before letting the skill change OpenClaw settings, review the proposed openclaw.json diff, confirm the selected model, and keep a backup or revert path for your previous defaults.

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:9
Finding
Unpinned Third-Party Executable Installed from Mutable Sources<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 9–24 **Vulnerability Type**: Unpinned and insufficiently verified third-party dependency **Risk Level**: Medium ```yaml "requires": { "bins": ["llmfit"] }, "install": [ { "id": "brew", "kind": "brew", "formula": "AlexsJones/llmfit", "bins": ["llmfit"], "label": "Install llmfit (brew tap AlexsJones/llmfit && brew install llmfit)", }, { "id": "cargo", "kind": "node", "bins": ["llmfit"], "label": "Install llmfit (cargo install llmfit)", }, ], ``` ### Technical Analysis The Skill depends on the external `llmfit` executable and offers installation through a third-party Homebrew tap or Cargo. Neither installation method pins an audited version, immutable commit, cryptographic checksum, or artifact digest. Consequently, the dependency retrieved during installation can differ from the version that was previously reviewed. The Homebrew option references the mutable third-party source `AlexsJones/llmfit`. The Cargo command similarly installs the latest available release by default. Compromise of the referenced tap, package registry account, release process, or upstream repository could therefore cause users to install attacker-controlled code. The Cargo installation entry also declares `"kind": "node"` even though its label invokes `cargo install`. This installer-type mismatch introduces ambiguity about how the package manager integration will process the entry and may undermine expected dependency validation. No malicious implementation is embedded in the audited project itself. The risk arises from trusting and executing a mutable external dependency without integrity or version controls. ### Attack Path 1. An attacker compromises the third-party Homebrew tap, Cargo package account, upstream repository, or release pipeline used to distribute `llmfit`. 2. The attacker publishes a modified release under the expected pac ...[truncated 1458 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin `llmfit` to a specific, reviewed version for every supported installation method. 2. Prefer an official and independently verifiable distribution source over a personal or otherwise mutable third-party tap. 3. Pin Homebrew dependencies to an immutable formula revision or commit where the integration supports it. 4. Use an explicit Cargo version, such as `cargo install llmfit --version <reviewed-version> --locked`. 5. Verify downloaded artifacts using a trusted cryptographic checksum, signature, or immutable digest before execution. 6. Record the expected upstream repository and publisher identity so similarly named or substituted packages can be rejected. 7. Correct the Cargo installer metadata from `"kind": "node"` to the appropriate supported Cargo/Rust installer type. 8. Review dependency updates before changing the pinned version, including release artifacts, ownership changes, and transitive dependencies. 9. Run the executable with ordinary user privileges and avoid administrative execution unless it is strictly required and explicitly justified. ]]>
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 (1)

Missing User Warnings

Low
Confidence
87% confidence
Finding
The skill explicitly tells the agent to update `openclaw.json` and set a default model, but it does not clearly require user confirmation or warn that local configuration will be modified. In an agent setting, this can lead to unintended changes to persistent local settings, which may alter model routing, break existing workflows, or surprise the user even if the content is otherwise non-malicious.

Static analysis

No suspicious patterns detected.