Back to skill

Security audit

contract-interact-checklist

Security checks for vulnerabilities and agentic risk

Overview

The skill is a simple offline smart-contract safety checklist, but its documented installation path can fetch mutable, unpinned remote code into a persistent agent skill directory.

Review the skill content directly and prefer a pinned release or commit with a verified checksum before installing. The local checklist script is low risk, but avoid running the unpinned global `npx` install or copying from a mutable branch unless you trust the publisher and current repository state.

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:83
Finding
Unpinned Third-Party Installer and Mutable Remote Skill Source## Vulnerability Details **File Location**: `SKILL.md`, lines 83–87 **Vulnerability Type**: Supply-chain risk caused by unpinned external components **Risk Level**: Medium ### Vulnerable Code ```bash # One-command installation using the skills CLI npx skills add zhaoxinghua09-cell/agent-skills -g # Alternatively, clone and copy the skill manually git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/contract-interact-checklist ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation process invokes `npx skills` without specifying an exact package version or integrity hash. This allows the package resolved by npm at installation time to differ from the version that was reviewed. The alternative installation procedure clones a mutable default branch rather than a pinned commit or signed release. It then copies the downloaded content into the user's Agent skill directory without verifying its checksum, signature, or provenance. Although the audited local Python script contains no remote retrieval or code-execution behavior, these installation instructions create a supply-chain boundary outside the reviewed artifact. A compromised or subsequently modified npm package or repository could deliver different code or Agent instructions. ### Attack Path 1. An attacker compromises the npm package resolved as `skills`, its publishing account, the referenced repository, or another relevant distribution component. 2. The attacker publishes malicious installer behavior or modifies the repository's default branch. 3. A user follows the documented `npx` or `git clone` installation procedure. 4. The installation resolves and downloads the attacker-controlled version because no immutable version, commit, checksum, or signature is required. 5. The downloaded skill is globally installed or copied into the Agent's skill directory. 6. Malicious scripts or instructions may execute when invoked or influence later Agent se ...[truncated 726 chars]
Remediation
## Remediation Suggestions 1. Pin the npm installer to a reviewed exact version, rather than invoking an unversioned package: ```bash npx --yes skills@X.Y.Z add zhaoxinghua09-cell/agent-skills -g ``` 2. Pin repository installation to a reviewed immutable commit or signed release tag: ```bash git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cd agent-skills git checkout --detach REVIEWED_COMMIT_SHA ``` 3. Publish a cryptographic checksum or signed provenance statement for the approved artifact and require verification before copying it into an Agent skill directory. 4. Avoid global installation by default. Prefer a scoped installation location with the minimum permissions required. 5. Instruct users to inspect downloaded scripts and skill instructions before activation. 6. Use protected release tags, signed commits or releases, multi-factor authentication for publisher accounts, and narrowly scoped publishing credentials. 7. Ensure installation fails closed if version, signature, checksum, or provenance verification does not succeed.
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 (6)

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The skill instructs users to run `npx skills add ...` without pinning an exact package version. This can cause execution of a newer or compromised package version at install time, which is especially risky because `npx` may download and run code immediately from the registry. In this skill’s context, the command appears in installation guidance, making accidental supply-chain exposure more plausible.

Natural-Language Policy Violations

Low
Confidence
84% confidence
Finding
The attestation content is primarily written in Chinese, with only a partial English title, and does not offer a language choice or explain a region-specific requirement. This can violate language/locale policy where skills are expected to avoid forcing a specific language without user opt-in.

Natural-Language Policy Violations

Low
Confidence
79% confidence
Finding
The file mixes English with Chinese terms such as the domain label and headline content, but does not explicitly state that users may choose their preferred language. Under the language/locale policy rule, this can be read as imposing a partially Chinese-only experience without opt-in.

Natural-Language Policy Violations

Low
Confidence
87% confidence
Finding
The primary heading and surrounding instructional content are presented in Chinese, and the skill metadata also uses Chinese display names. The file does include an English display_name field, but the user-facing skill instructions in this markdown do not offer a language/locale choice or indicate that Chinese is optional.

Natural-Language Policy Violations

Low
Confidence
88% confidence
Finding
The manifest sets the category to the Chinese phrase "AI 治理" without any indication that the skill is locale-specific or that users can choose language/locale. Under the policy, forcing or assuming a specific language without opt-in can be a natural-language policy issue, even in config metadata.

Natural-Language Policy Violations

Low
Confidence
94% confidence
Finding
The argument parser description and help text are hard-coded in Chinese, and the checklist items are also Chinese-only. This imposes a specific language on users without offering a locale choice or documenting that the tool is intended only for a Chinese-speaking audience.

Static analysis

No suspicious patterns detected.