Back to skill

Security audit

kyc-checklist-gen

Security checks for vulnerabilities and agentic risk

Overview

The skill itself is a simple local KYC checklist script, but its documented install path can fetch and globally install mutable remote code instead of the reviewed artifact.

Install only from a reviewed, pinned release or exact commit, avoid the global `-g` path unless you intend all relevant agents to load it, and treat the generated KYC checklist as a local aid that still needs current official requirements and professional review.

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:80
Finding
Unpinned Third-Party Installer and Mutable Repository Source<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 80–86 **Vulnerability Type**: Supply-chain risk from unpinned external dependencies and mutable source repositories **Risk Level**: Medium ### Vulnerable Code ```bash # One-command installation using the skills CLI npx skills add zhaoxinghua09-cell/agent-skills -g # Alternative manual installation git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/kyc-checklist-gen ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation procedures rely on external components without binding them to immutable, previously audited versions: 1. `npx skills` can download and execute an npm package resolved at installation time. The command does not specify an exact package version or verify package integrity. 2. The repository installation method clones the repository's mutable default branch. It does not check out an audited commit, verify a release signature, or validate a cryptographic checksum. 3. The `-g` option causes the retrieved skill content to be installed globally within the relevant skills environment, increasing the scope over which modified content could be loaded. Consequently, the files installed by these commands may differ from the artifact reviewed during this audit. A compromised npm package, maintainer account, repository, or publishing pipeline could introduce malicious scripts or agent instructions after review. The audited runtime script itself does not fetch or execute remote payloads; this finding is limited to the documented installation supply chain. ### Attack Path 1. An attacker compromises the npm package, source repository, maintainer credentials, or release pipeline associated with the documented installation source. 2. The attacker publishes a modified CLI package or changes the repository's default branch to include malicious scripts or skill instructions. 3. A user follows the documented `npx` or `git clone` ...[truncated 1060 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the installer to an exact, audited version, for example by using an explicit npm package version rather than resolving the latest available release. 2. Pin repository-based installation to an immutable commit hash or a signed release tag. 3. Publish SHA-256 or stronger checksums for release artifacts and require verification before installation. 4. Sign release tags and packages, and document signature verification using a trusted maintainer key. 5. Avoid executing remotely resolved installer packages directly where practical. Download, inspect, and verify the installer before execution. 6. Install only the reviewed skill subdirectory or a signed release archive rather than cloning a mutable repository branch. 7. Avoid global installation unless it is operationally necessary. Prefer a dedicated, least-privileged user or isolated environment. 8. Add continuous supply-chain controls such as protected branches, mandatory review, multi-factor authentication, provenance attestations, and reproducible release artifacts. ]]>
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 (4)

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The substantive usage, warnings, and operational guidance in the skill are written in Chinese, while the file does not provide an alternative language path or indicate that Chinese is a required locale. This can amount to a language/locale policy issue because it imposes a specific language on users without opt-in.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The documentation instructs users to run `npx skills add ...` without pinning an exact package version or verifying integrity. This can cause execution of an unexpected or compromised package version at install time, creating a supply-chain risk on the user's machine.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
The argument parser description and all user-facing output strings are written only in Chinese, which imposes a specific language on users without any opt-in or alternative locale support. The file does not document that the skill is intentionally limited to a Chinese-speaking or region-specific context.

Natural-Language Policy Violations

Low
Confidence
83% confidence
Finding
The file presents core instructions and descriptions in a mixed Chinese/English format, including untranslated domain terms in the English section, but does not state that the user can choose a preferred language or that the skill is intended for a specific locale. This may conflict with a language/locale policy requiring user opt-in or explicit justification for language constraints.

Static analysis

No suspicious patterns detected.