Back to skill

Security audit

data-minimizer

Security checks for vulnerabilities and agentic risk

Overview

The redaction tool itself is local and purpose-aligned, but its documented unpinned global install path should be reviewed before use.

Install only from a reviewed, pinned version or commit, avoid running the npx global installer from an elevated shell, and use the script only on files you intentionally provide for local redaction. Treat the masked output as a helper result and review it before sending sensitive material to another AI service.

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:79
Finding
Unpinned Third-Party Installer and Mutable Repository Source<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, line 79 **Vulnerability Type**: Unpinned third-party dependency and mutable supply-chain source **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add zhaoxinghua09-cell/agent-skills -g ``` ### Technical Analysis The documented installation command uses `npx` without pinning the `skills` package to a specific audited version. It also identifies the GitHub-hosted skill collection by repository name without pinning it to an immutable commit. When invoked, `npx` can retrieve and execute the package version currently resolved by the npm registry. The effective installer code may therefore differ from the code reviewed during this audit. Likewise, repository content resolved from a mutable default branch can change after publication. The `-g` option requests global installation, increasing the persistence and scope of any compromised content. This finding is limited to the documented installation workflow; the reviewed Python implementation itself does not retrieve remote payloads or execute subprocesses. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, the referenced GitHub repository, or an associated publishing credential. 2. The attacker publishes a malicious package version or modifies content on the repository's mutable default branch. 3. A user follows the documented command: ```bash npx skills add zhaoxinghua09-cell/agent-skills -g ``` 4. `npx` resolves and executes the currently available installer rather than a previously audited version. 5. The installer retrieves and globally installs mutable repository content. 6. Malicious installer logic or skill content executes with the permissions of the invoking user and may remain available to agent environments through the global installation. ### Impact Assessment Successful exploitation could allow arbitrary code execution with the privileges of the user running the installation co ...[truncated 590 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the npm CLI to an explicitly audited version: ```bash npx skills@&lt;verified-version&gt; add &lt;source&gt; ``` 2. Pin the repository source to an immutable, reviewed commit hash or signed release rather than a mutable branch: ```text zhaoxinghua09-cell/agent-skills@&lt;verified-commit-sha&gt; ``` 3. Publish and verify cryptographic checksums or signatures for the installer and skill artifact before installation. 4. Remove global installation as the default. Prefer a project-local or isolated installation with the minimum permissions required. 5. Use an npm lockfile or equivalent dependency-locking mechanism where supported, and enable integrity verification for downloaded packages. 6. Document the exact audited CLI version, repository commit, expected checksums, and verification commands. 7. Recommend installation from a non-elevated account and review downloaded content before execution. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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
Findings (5)

Lp3

Medium
Category
MCP Least Privilege
Confidence
86% confidence
Finding
The skill advertises local file-processing behavior and installation/usage patterns that imply file read/write access, but it does not declare any explicit tool scope such as permissions or allowed-tools. That mismatch weakens least-privilege controls and can cause an agent platform to grant broader filesystem access than users expect, which is especially relevant here because the skill handles sensitive PII during redaction workflows.

Rp1

Medium
Category
MCP Rug Pull
Confidence
82% confidence
Finding
The installation instruction uses `npx skills` without a pinned package version, so execution depends on whatever package version is currently resolved at install time. This creates a supply-chain risk: a compromised, replaced, or unexpectedly updated package could run unreviewed code on the user's system during skill installation.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The module docstring, CLI description, argument help text, and runtime output are written only in Chinese, which imposes a specific language on users. The file does not offer any language selection or document a justified region-specific constraint, so this is a natural-language locale policy issue under the stated rule.

Natural-Language Policy Violations

Low
Confidence
86% confidence
Finding
The file title presents the attestation primarily in Chinese and the body content is written in Chinese, but there is no stated user opt-in, language choice, or documented regional constraint. Under the language/locale policy rule, this can be considered a natural-language policy concern because the skill documentation appears to impose a specific language by default.

Natural-Language Policy Violations

Low
Confidence
79% confidence
Finding
The manifest uses a Chinese-only category label ("AI 治理"), which indicates a locale-specific presentation choice in natural-language metadata. There is no accompanying user opt-in, alternative locale, or justification that this skill is intended only for a Chinese-language environment.

Static analysis

No suspicious patterns detected.