Back to skill

Security audit

disk-scan

Security checks for vulnerabilities and agentic risk

Overview

The bundled disk scanner appears read-only, but the skill has confusing write-capable documentation and unpinned global install instructions that users should review before installing.

Install only if you are comfortable with a locally run recursive disk-usage scanner and with the publisher/source. Prefer a pinned release or reviewed commit instead of the unpinned npx or default-branch Git instructions. Treat the --apply and backup references as documentation defects unless a future version clearly declares actual write/delete behavior and safeguards.

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 Commands Create Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md:81-85` **Vulnerability Type**: Unpinned executable package and mutable repository installation **Risk Level**: Medium ### Vulnerable Code ```bash # One-click 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/disk-scan ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation procedure executes the `skills` npm package through `npx` without specifying an exact package version or integrity value. Depending on the local npm configuration and cache state, `npx` can download and execute the package version currently resolved by the registry. Consequently, the executable installer used in the future may differ from the one reviewed during this audit. The alternative procedure clones the default branch of a remote Git repository without pinning a reviewed commit or tag. Default branches are mutable, so the files copied into the agent's skill directory may change after this package has been audited. Neither procedure performs checksum, signature, lockfile, or commit verification. Although no malicious content was identified in the bundled `scripts/disk_scan.py`, the documented installation paths establish an avoidable dependency on mutable third-party content. ### Attack Path 1. An attacker compromises the relevant npm package, npm publisher account, source repository, or repository maintainer account. 2. The attacker publishes a modified package release or pushes malicious content to the repository's default branch. 3. A user follows the installation instructions in `SKILL.md`. 4. The `npx` command downloads and executes the newly resolved package, or `git clone` obtains the modified default branch. 5. The resulting content is globally installed or copied into the user's agen ...[truncated 1009 chars]
Remediation
## Remediation Suggestions 1. Pin the CLI to an exact reviewed version: ```bash npx --yes skills@<exact-version> add zhaoxinghua09-cell/agent-skills@<immutable-reference> -g ``` 2. Confirm that the CLI supports immutable skill references before recommending this syntax. If it does not, download and verify the skill separately rather than relying on mutable resolution. 3. Pin Git installation to a reviewed commit: ```bash git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cd agent-skills git checkout --detach <reviewed-full-commit-hash> ``` 4. Publish SHA-256 checksums or signed release artifacts and require verification before copying or loading the skill. 5. Prefer signed tags or releases, while still documenting the expected immutable commit hash because tags can be moved. 6. Avoid global installation by default. Install into a scoped user directory only after displaying the exact files and permissions that will be added. 7. Document the trust boundary clearly: installation commands retrieve content from external services, and users should verify the publisher, package version, commit, and artifact digest. 8. In automated environments, use a lockfile, an approved internal registry or mirror, and a policy that rejects packages or source revisions not present in an allowlist.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (12)

Natural-Language Policy Violations

Medium
Confidence
91% confidence
Finding
The attestation content is primarily written in Chinese, with only the title bilingual, and it does not indicate that users may choose another language or that the file is intentionally region-specific. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern.

Intent-Code Divergence

Medium
Confidence
96% confidence
Finding
The README describes dry-run and `--apply` execution semantics for a skill whose stated purpose is read-only disk-usage scanning. This scope contradiction can mislead users or downstream agents into believing the tool may perform state-changing actions, which is dangerous in automation contexts because invocation policy and trust assumptions depend on accurate read-only semantics.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The overly broad English trigger/description overlaps with common tasks, making the skill more likely to be selected outside its intended niche. In agent routing systems, ambiguous broad phrasing can cause inappropriate activation and expose filesystem-scanning behavior in contexts where it was not expected.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
Telling users to back up data before `--apply` implies potentially destructive or state-changing behavior, directly conflicting with the claimed read-only scanning intent. In a security-sensitive agent ecosystem, such contradictions are risky because they obscure the true privilege and safety profile of the skill.

Lp3

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding
Without declared permissions the skill's intent is opaque and cannot be validated.

Natural-Language Policy Violations

Medium
Confidence
90% confidence
Finding
The display names, description, headings, and operational guidance are written in Chinese throughout the skill file. This effectively forces a specific language experience without documenting user choice or providing an opt-in, which matches the language/locale policy concern for natural-language content.

Intent-Code Divergence

Medium
Confidence
94% confidence
Finding
The documentation says the skill is a read-only disk scanner, yet it also describes write-capable behavior behind dry-run/--apply and references other tools like text-replace/dup-finder. That contradiction can mislead users or agents about the trust boundary, increasing the risk that a supposedly safe read-only skill is granted or assumed to have write privileges.

Intent-Code Divergence

Medium
Confidence
93% confidence
Finding
The disclaimer advises users to back up important data and confirm before using '--apply', which directly conflicts with the skill's stated read-only purpose. This inconsistency weakens operator trust and may cause a user or agent to authorize disk modifications under the mistaken belief that the skill is only scanning.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
Using 'npx skills add ... -g' without pinning a version can cause users to fetch and execute whatever package version is current at install time. If the upstream package is compromised or a breaking/malicious release is published, the install path could execute unintended code on the user's machine.

Natural-Language Policy Violations

Medium
Confidence
78% confidence
Finding
The manifest sets the category value to Chinese ("效率工具"), which indicates a fixed locale choice in user-facing metadata. There is no accompanying documentation here offering language selection or explaining that the skill is intended only for a Chinese-language or region-specific context.

Natural-Language Policy Violations

Low
Confidence
71% confidence
Finding
The README presents the skill content in fixed Chinese and English forms without stating that language choice follows user preference or locale. Because language/locale policy findings apply to all file types, this can be read as a hard-coded language behavior lacking explicit opt-in or selection.

Description-Behavior Mismatch

Low
Confidence
90% confidence
Finding
The English description broadens the skill from disk scanning to general file/text chores, which exceeds the manifest's narrowly defined purpose. Overbroad documentation can cause accidental invocation in unrelated workflows and increases the chance an agent or user grants the skill more trust or authority than intended.

Static analysis

No suspicious patterns detected.