Back to skill

Security audit

csv-slice

Security checks for vulnerabilities and agentic risk

Overview

The CSV tool itself appears local and read-only, but its documentation recommends unpinned global installation and includes misleading write/apply references that users should review first.

Review the installed files before enabling this skill globally. Prefer installing the reviewed artifact or a pinned commit/version, and treat the documented --apply/write behavior as inaccurate for this packaged csv_slice.py unless the publisher updates the code and docs to match.

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:81
Finding
Unpinned Third-Party Installation Sources<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:81-85` **Vulnerability Type**: Unpinned third-party dependency and mutable source installation **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add zhaoxinghua09-cell/agent-skills -g # Or manually clone and copy the skill git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/csv-slice ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation procedures retrieve third-party components without pinning them to immutable, previously audited versions: - The `npx` command does not specify a version of the `skills` package. - The Git command clones the repository's current default branch rather than a specific commit or signed release. - The retrieved content is copied into a persistent Agent skill directory. - No checksum, signature, or integrity verification is required before installation. Consequently, the content installed by these commands can differ from the artifact reviewed during this audit. If the npm package, source repository, maintainer account, release process, or upstream distribution channel is compromised, an attacker could replace the expected content with malicious scripts or Agent instructions. The audited `scripts/csv_slice.py` file itself does not retrieve or execute remote payloads. The risk arises from the mutable installation workflow documented in `SKILL.md`. ### Attack Path 1. An attacker compromises the relevant npm package, GitHub repository, maintainer credentials, or upstream release process. 2. The attacker publishes a modified CLI package or commits malicious content to the repository's default branch. 3. A user follows the documented installation command without specifying an immutable version or commit. 4. The user's system retrieves the attacker-controlled version. 5. The retrieved skill is installed globally or copied into `~/.workbuddy/skills/`. 6. When the Agent later loads or invokes the ...[truncated 788 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the npm CLI to an explicitly reviewed version: ```bash npx skills@<reviewed-version> add zhaoxinghua09-cell/agent-skills -g ``` 2. Pin Git installation instructions to an immutable commit: ```bash git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cd agent-skills git checkout --detach <reviewed-commit-sha> ``` 3. Publish SHA-256 checksums or signed release manifests for the exact files being installed, and require verification before copying them into an Agent skill directory. 4. Prefer signed tags or releases and document how users can verify the maintainer's signature and expected commit identity. 5. Avoid global installation by default. Install only the required skill into a scoped directory after reviewing its instructions and executable files. 6. Ensure automated release pipelines fail when package versions, repository commits, or integrity metadata are missing. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (11)

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The manifest describes a narrowly scoped CSV utility for previewing rows, selecting columns, deduplication, filtering, and row counting using the standard csv module. The English README instead describes 'One command for daily file/text chores', which materially expands the apparent purpose beyond CSV operations and mismatches the declared scope.

Vague Triggers

Medium
Confidence
92% confidence
Finding
For markdown files, trigger or invocation descriptions should be specific enough to avoid unintended activation. The phrase "daily file/text chores" is broad and does not clearly constrain what kinds of requests should or should not invoke this skill.

Natural-Language Policy Violations

Medium
Confidence
88% confidence
Finding
The skill body is written entirely in Chinese and does not mention any option to use another language, despite only the metadata containing minimal English labels. This creates a language/locale constraint in the natural-language instructions without explicit user opt-in or justification as a region-specific tool.

Intent-Code Divergence

Medium
Confidence
87% confidence
Finding
The skill is presented as a CSV viewer/filter/counter, but the documentation also references write-to-disk behavior, `--apply`, and even backups for unrelated tools like `text-replace/dup-finder`. This mismatch expands the apparent capability surface beyond the declared purpose, which can mislead users about side effects and increase the chance of unintended file modification if the underlying scripts do more than advertised.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The skill instructs users to run `npx skills add ...` without pinning a specific package version or digest. This creates a supply-chain risk because a future or compromised package resolution path could execute unintended code during installation, and skill installation commands are high-trust actions users may copy directly.

Natural-Language Policy Violations

Low
Confidence
89% confidence
Finding
This markdown file contains important descriptive and assurance text primarily in Chinese, including originality and safety attestation statements. A fixed-language presentation can violate language/locale policy expectations when no user opt-in or alternative locale is provided.

Natural-Language Policy Violations

Low
Confidence
60% confidence
Finding
This file mixes Chinese and English throughout the documentation but does not state how language should be selected for users. If organizational policy requires respecting user language preference, the lack of an explicit choice mechanism can be a policy concern.

Intent-Code Divergence

Low
Confidence
77% confidence
Finding
The README states specific operational behavior: '默认 dry-run 预览、--apply 才执行' and the English line repeats 'Dry-run by default, --apply to execute'. In this file, there is no supporting code or fuller documentation showing those semantics; combined with the English description 'daily file/text chores', the documentation overclaims behavior relative to what is actually documented here.

Description-Behavior Mismatch

Low
Confidence
77% confidence
Finding
The manifest description frames the skill as a local CSV utility using only the standard library, implying a narrow, offline data-processing scope. However, the skill documentation embeds and references remote web resources, introducing network-dependent behavior that is outside the stated CSV-processing purpose, even though it is limited to documentation/installation context rather than runtime code.

Natural-Language Policy Violations

Low
Confidence
81% confidence
Finding
The manifest sets the category to the Chinese term "效率工具", which imposes a specific language in user-visible metadata. There is no accompanying indication that the skill is intended only for Chinese-speaking users or that language is selectable, so this may violate a language/locale policy requiring user opt-in or documented justification.

Natural-Language Policy Violations

Low
Confidence
92% confidence
Finding
The argument description and help strings are presented only in Chinese, which imposes a specific language on users without any visible opt-in or alternative locale support. Under the stated policy, hard-coded language requirements are a natural-language policy concern unless the tool explicitly offers a choice or documents a justified regional scope.

Static analysis

No suspicious patterns detected.