Back to skill

Security audit

api-resilience

Security checks for vulnerabilities and agentic risk

Overview

The skill itself is a small API resilience demo, but its install instructions fetch mutable remote content and install it globally without version or integrity checks.

Review or pin the exact package version or Git commit before installing, prefer a project-scoped install when possible, and avoid the global `-g` path unless you want this skill available to future agent sessions. The bundled demo script itself appears low risk to run locally.

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:88
Finding
Unpinned Package Execution and Installation from a Mutable Repository<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 88–92 **Vulnerability Type**: Unpinned third-party package and mutable source repository **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add zhaoxinghua09-cell/agent-skills -g # Or manually: clone and copy this skill into the Agent skill directory git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/api-resilience ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation procedure invokes `npx skills` without specifying an exact package version or verifying package integrity. Depending on the local npm environment, `npx` may download and execute the current release of the named package. Consequently, the code executed during installation can differ from the version reviewed during this audit. The command also retrieves skill content from the default branch of a remote Git repository without pinning a reviewed commit hash or signed release. Both installation paths therefore depend on mutable upstream content. Compromise of the npm package, package publisher, GitHub account, or repository could cause users to execute or install content that was not present in the audited artifact. The `-g` option installs the skill globally for the relevant skill framework. This increases exposure because altered skill instructions could be available to future Agent sessions rather than remaining isolated to one project. ### Attack Path 1. An attacker compromises the npm package publisher, the source repository, or an authorized maintainer account. 2. The attacker publishes a modified package release or changes the repository's default branch. 3. A user follows the installation instructions in `SKILL.md`. 4. `npx` downloads and executes the unpinned package, or `git clone` retrieves the modified default branch. 5. The modified content is copied into the user's global Agent skill directory. 6. Malicious installer behavior can execute ...[truncated 777 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the npm CLI to an exact reviewed version, for example by using an explicit package version rather than an unversioned `npx` invocation. 2. Include npm integrity verification through a lockfile, published checksum, trusted registry policy, or signed provenance. 3. Pin repository installation to a reviewed commit hash or cryptographically signed release tag instead of cloning the mutable default branch. 4. Publish SHA-256 checksums or signatures for distributed skill files and document how users must verify them before installation. 5. Avoid global installation by default. Install into a project-scoped directory unless cross-project availability is explicitly required. 6. Instruct users to inspect downloaded scripts and skill instructions before activation. 7. Use a controlled installer that fails closed when package integrity, repository identity, commit signatures, or expected checksums cannot be verified. ]]>
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 (5)

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding
The installation instruction uses `npx skills add ...` without pinning an exact package/version, which causes users to fetch and execute whatever version of the referenced package is current at install time. If the package, one of its transitive dependencies, or the delivery path is compromised, this can lead to arbitrary code execution on the user's machine during skill installation.

Natural-Language Policy Violations

Low
Confidence
77% confidence
Finding
This file begins with a bilingual heading and the body content is primarily Chinese, but there is no statement that language selection is optional or user-configurable. Under the policy rule, fixed language presentation can be a natural-language policy concern when no opt-in or locale justification is provided.

Natural-Language Policy Violations

Low
Confidence
78% confidence
Finding
The file presents the skill content bilingually with mandatory Chinese text in headings and descriptions, but it does not state that language selection is optional or user-configurable. Under the stated policy, forcing a specific language or locale without user opt-in can be a natural-language policy violation.

Natural-Language Policy Violations

Low
Confidence
77% confidence
Finding
The manifest sets the category to "AI工程方法" on L09, which imposes a specific language in user-facing metadata without any indication that the skill is locale-specific or that users can opt into that language. This may conflict with organizational language/locale policy where skills should not force a language absent justification or choice.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
The file's natural-language description and all user-facing output strings are written only in Chinese, which indicates a fixed language choice. The skill does not provide any opt-in, alternative locale selection, or documentation showing that Chinese is a required regional constraint.

Static analysis

No suspicious patterns detected.