Back to skill

Security audit

Agent Intelligence

Security checks for vulnerabilities and agentic risk

Overview

The skill is a research lookup helper, but it asks users to run unpinned npm code that can change after review.

Review before installing or using. Treat the npx examples as executing third-party code with your user permissions; prefer a pinned, reviewed version, a lockfile-backed install, or sandboxed execution with unnecessary secrets removed from the environment.

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

Error
Location
SKILL.md:35
Finding
Unpinned Third-Party Package Execution Through npx## Vulnerability Details **File Location**: `SKILL.md`, lines 35-37 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: High ```bash npx @claws-shield/cli intel "capybara codename" npx @claws-shield/cli intel "tengu feature flags" npx @claws-shield/cli intel "unreleased tools" ``` ### Technical Analysis The documented commands instruct users to execute `@claws-shield/cli` through `npx` without specifying an exact package version. Depending on the local environment and npm cache, `npx` may resolve and download the current package release from the configured npm registry before executing it. The project does not include a package manifest, lockfile, integrity metadata, vendored implementation, or other mechanism that binds these commands to the package version reviewed when the Skill was published. Consequently, the code executed by users can change independently of the audited Skill. Package lifecycle scripts and the CLI entry point may run code with the invoking user's operating-system permissions. The local wrapper in `scripts/query-intel.mjs` also imports `@claws-shield/intel` and `@claws-shield/core`, but the source and pinned versions of those dependencies are not included in the supplied project. Their behavior therefore could not be verified during this audit. ### Attack Path 1. An attacker compromises the npm account, publication pipeline, or source used to publish `@claws-shield/cli`, or otherwise causes a malicious release to be resolved through the user's configured registry. 2. The attacker publishes a modified package version containing malicious lifecycle or CLI code. 3. A user follows one of the documented unversioned `npx` commands. 4. `npx` resolves the mutable package release and, when it is not already available locally, downloads it from the registry. 5. npm lifecycle code or the package CLI executes under the user's account. 6. The malicious package can access resources available t ...[truncated 909 chars]
Remediation
## Remediation Suggestions 1. Replace unversioned package execution with an audited, exact package version, such as `@claws-shield/cli@x.y.z`. 2. Add a `package.json` and committed lockfile containing integrity hashes for all direct and transitive dependencies. 3. Install dependencies through a reproducible process such as `npm ci`, rather than resolving mutable versions during each invocation. 4. Review all direct and transitive dependency sources before pinning them, including `@claws-shield/cli`, `@claws-shield/intel`, and `@claws-shield/core`. 5. Disable dependency lifecycle scripts where they are unnecessary, for example by using `npm ci --ignore-scripts`, and explicitly document any scripts that must remain enabled. 6. Prefer bundling or vendoring the minimal query implementation and required static data so that all executable behavior is present in the auditable Skill package. 7. Verify published package provenance and integrity in CI, and require review before updating dependency versions or lockfile entries. 8. Execute the query component with least privilege, without unnecessary secrets in its environment and with filesystem and network access restricted where practical.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The skill instructs users to execute `npx @claws-shield/cli` without pinning an exact package version, which causes npm to resolve and run whatever version is current at execution time. In a user-invocable skill with allowed shell access, this creates a supply-chain execution risk: a compromised publisher account, malicious new release, or dependency hijack could result in arbitrary code execution on the host.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This command again relies on unpinned `npx` execution of `@claws-shield/cli`, meaning the skill may fetch and execute an unreviewed package version at runtime. Because the skill is explicitly designed to query intelligence data and has Bash available, the context increases danger: users may treat the command as trusted documentation and unknowingly execute attacker-controlled code if the package supply chain is compromised.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The third example repeats the same unsafe pattern of invoking an npm package without an exact version, exposing consumers to mutable remote code execution through the npm registry. In security-sensitive or research-oriented tooling, this is especially risky because the content may encourage users to run exploratory queries, normalizing repeated execution of an unpinned external package.

Static analysis

No suspicious patterns detected.