Back to skill

Security audit

ai-reply-heuristics

Security checks for vulnerabilities and agentic risk

Overview

The skill's actual checker code is simple and purpose-aligned, but the documented install path uses an unpinned global installer that can change agent skills with code fetched at install time.

Review this before installing. The checker itself appears low-risk when run directly as `python scripts/ai_reply_heuristics.py`, but avoid the one-line global `npx` install unless you trust the package source at install time. Prefer a reviewed commit or release, verify provenance, and install only this skill into a user-scoped skills directory.

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:77
Finding
Unpinned Package Execution in the Documented Installation Command## Vulnerability Details **File Location**: `SKILL.md`, line 77 **Vulnerability Type**: Supply-chain exposure through an unpinned executable dependency **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add zhaoxinghua09-cell/agent-skills -g ``` ### Technical Analysis The documented one-command installation procedure invokes the unversioned `skills` npm package through `npx`. If the package is unavailable in the local cache, `npx` may retrieve and execute the package currently published under that name. Neither an exact package version nor an integrity hash is specified. Consequently, the code executed by this command can differ from the code that was reviewed. A compromised package publisher, registry account, distribution channel, or later malicious release could turn this installation command into a remote code-execution vector. The `-g` option also requests a global installation, unnecessarily expanding the scope of changes. This finding concerns the documented installation path. The bundled Python implementation itself uses only standard-library modules and contains no observed remote retrieval or third-party runtime dependency. ### Attack Path 1. An attacker compromises the publisher account or distribution process for the npm package resolved as `skills`, or causes a malicious version to be selected through a supply-chain attack. 2. The attacker publishes a modified package containing malicious installation or runtime logic. 3. A user follows the documented command in `SKILL.md`. 4. `npx` resolves and downloads the mutable package version without a project-specified version or integrity constraint. 5. The downloaded package executes with the privileges of the user running the command. 6. The malicious process can modify files and install altered skill content within that user's accessible scope. If the command is run from an elevated shell, the resulting impact may extend to privileged or system-wide locations. ### Impact Assessment ...[truncated 460 chars]
Remediation
## Remediation Suggestions 1. Pin the package to a specifically reviewed version rather than relying on the latest registry release: ```bash npx --yes skills@<audited-version> add zhaoxinghua09-cell/agent-skills -g ``` 2. Verify the package's integrity using the package manager lockfile or a documented registry integrity digest. Revalidate the digest whenever the approved version changes. 3. Avoid global installation unless it is operationally necessary. Prefer a user-scoped or project-local destination that follows least-privilege principles. 4. Prefer a repository checkout pinned to a reviewed commit rather than a mutable branch: ```bash git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cd agent-skills git checkout <reviewed-commit-sha> ``` 5. Document how users can verify the repository commit, release signature, or checksum before copying and executing skill files. 6. Advise users not to run the installation command from an elevated or administrative shell. 7. In release automation, generate and publish checksums or signed provenance for the exact package contents reviewed by maintainers.
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 (7)

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
91% confidence
Finding
The visible skill name, title, summary, and body content are presented in Chinese, while only a separate English display name field appears later. This creates a locale/language constraint in the natural-language interface without clearly offering the user a choice or documenting the restriction as region-specific.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The installation instruction uses 'npx skills' without pinning a specific package version, which can cause users to fetch and execute whatever version is current at install time. If the upstream package is compromised, replaced, or introduces malicious behavior, this creates a supply-chain risk that could lead to arbitrary code execution during installation.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
This file contains natural-language interface text, help text, and output messages exclusively in Chinese, including the module docstring and CLI descriptions. Under the policy, forcing a specific language without user opt-in is a locale/language policy violation unless the constraint is explicitly justified.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
This attestation is primarily written in Chinese and does not indicate any language-selection option or user opt-in. Under the policy rule for natural-language violations, forcing a specific language without choice can be a locale/language policy issue.

Natural-Language Policy Violations

Low
Confidence
82% confidence
Finding
The skill description presents key headings and policy-like text in both Chinese and English, including untranslated Chinese phrases, but does not state whether the skill is intended for bilingual users or offer a language choice. This can violate the language/locale policy criterion because it implicitly forces a locale assumption without explicit opt-in or justification.

Natural-Language Policy Violations

Low
Confidence
86% confidence
Finding
The manifest sets the category to "AI 治理", which imposes a specific language in user-visible metadata without any indication that the skill is intended only for Chinese-speaking users or that alternative locales are supported. This can violate the language/locale policy when no opt-in or justification is provided.

Static analysis

No suspicious patterns detected.