Back to skill

Security audit

Test Safety

Security checks for vulnerabilities and agentic risk

Overview

The skill is a small, disclosed safety-analysis helper, but users should notice that submitted content may be sent to model and extraction providers.

Before installing, confirm you are comfortable sending analyzed URLs, documents, transcripts, or extracted content to the selected model provider and any enabled Firecrawl or Apify fallback. Prefer pinned dependencies and review the actual safety-guard executable source before using it on sensitive data.

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:5
Finding
Unpinned PyYAML Dependency Allows Unreviewed Supply-Chain Changes## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"clawdbot":{"emoji":"🛡️","requires":{"bins":["python3"],"python_deps":["PyYAML"]},"install":[{"id":"pip","kind":"pip","packages":["PyYAML"],"label":"Install PyYAML (pip)"}]}} ``` ### Technical Analysis The installation metadata specifies `PyYAML` without an exact version constraint or an integrity hash. Consequently, installation results depend on whichever release the package resolver selects at installation time rather than the dependency version reviewed with this artifact. The project contains no dependency lockfile, hash manifest, vendored package, or explicit trusted-index configuration. A future compromised, malicious, or incompatible package release could therefore alter installation-time or runtime behavior without any corresponding change to this skill package. The reviewed artifact does not contain evidence that PyYAML is currently malicious. The issue is the mutable and unverifiable dependency resolution process. ### Attack Path 1. An attacker compromises the upstream package, its maintainer account, publishing credentials, or the package index used during installation. 2. The attacker publishes a malicious release that satisfies the unrestricted `PyYAML` dependency declaration. 3. A user installs or reinstalls the skill after that release becomes available. 4. `pip` resolves and downloads the attacker-controlled release because no exact version or integrity hash is required. 5. Malicious package installation hooks or imported runtime code execute with the privileges of the user or service performing the installation or running the skill. ### Impact Assessment Successful exploitation could execute arbitrary code with the privileges of the account installing or running the skill. Depending on that account's access, this may expose API keys, configuration files, u ...[truncated 332 chars]
Remediation
## Remediation Suggestions 1. Pin PyYAML to a specific, reviewed version, for example by using an exact `==` constraint supported by the skill packaging system. 2. Maintain a lockfile or requirements file containing cryptographic hashes and install with hash verification, such as `pip --require-hashes`. 3. Configure installation to use an explicitly trusted package index rather than inheriting an uncontrolled index or mirror. 4. Review dependency updates before changing the pin, including release provenance, known vulnerabilities, and package integrity. 5. Generate and retain a software bill of materials for released skill versions. 6. Add automated dependency scanning and controlled update tooling to detect vulnerable releases without silently adopting new versions.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (2)

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The skill is presented as a local safety guard for screening user input, but the documented behavior shows it accepts URLs, PDFs, and YouTube links and may send fetched content to external models and services. This creates a significant trust-boundary mismatch: operators may deploy it expecting local defensive filtering, while it actually performs network retrieval and third-party data disclosure, which can expose sensitive inputs and expand attack surface.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The documentation advertises optional use of external crawling and YouTube extraction services even though the stated purpose is input safety screening. Unnecessary integration with Firecrawl and Apify increases data exposure, dependency risk, and the chance that user-supplied content is sent to external providers without users understanding that a security tool is doing so.

Static analysis

No suspicious patterns detected.