Back to skill

Security audit

health-claim-guard

Security checks for vulnerabilities and agentic risk

Overview

The scanner itself is a simple local text checker, but its install instructions use an unpinned global installer from mutable remote sources, so users should review the installation path before trusting it.

Prefer running the bundled Python script directly or installing only from a pinned, reviewed commit or package version. Avoid the unpinned global `npx` install unless you trust the npm `skills` package, the referenced repository, and the global agent-skill changes it may make. Treat results as preliminary compliance screening, not professional legal or medical advice.

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:82
Finding
Unpinned Third-Party Package Execution During Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:82` **Vulnerability Type**: Unpinned third-party package execution and supply-chain exposure **Risk Level**: Medium ```bash npx skills add zhaoxinghua09-cell/agent-skills -g ``` ### Technical Analysis The installation instructions invoke the third-party `skills` package through `npx` without specifying an exact package version or verifying an integrity digest. Depending on the local npm configuration and cache state, `npx` may download and immediately execute a mutable package from the npm registry. The effective installer code is not included in the audited artifact. Consequently, its behavior cannot be reviewed alongside this Skill and may change independently after publication. The command also requests a global Skill installation through `-g`, increasing the persistence and scope of any content installed by the external tool. This external installer is unnecessary for the Skill's core functionality because the audited package already includes a zero-dependency Python script that can run locally. The installation procedure therefore introduces supply-chain execution privileges beyond the minimum needed to perform health-claim screening. ### Attack Path 1. A user follows the installation command in `SKILL.md`. 2. `npx` resolves the unpinned `skills` package using the configured npm registry. 3. If the package, package maintainer account, registry resolution path, or dependency chain has been compromised, `npx` downloads attacker-controlled code. 4. The downloaded package executes with the permissions of the invoking user. 5. The malicious installer may read or modify user-accessible files, execute additional processes, access available environment credentials, or install altered Agent Skill instructions globally. 6. Globally installed malicious Skill content may subsequently affect other Agent sessions that load it. This path depends on compromise or malicious replacement of the external ...[truncated 838 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the `npx` installation path when the bundled Python script is sufficient, and document direct local execution instead: ```bash python scripts/health_claim_guard.py --help ``` 2. If the external installer remains necessary, pin the package to an exact reviewed version rather than resolving the latest mutable release: ```bash npx --yes skills@EXACT_REVIEWED_VERSION add zhaoxinghua09-cell/agent-skills -g ``` 3. Prefer installing the package through a committed npm lockfile and then invoking its local binary. Verify the lockfile's registry source and integrity metadata during release review. 4. Pin repository content to a reviewed commit SHA rather than a mutable branch, tag, or default branch. 5. Install only the `health-claim-guard` Skill rather than repository-wide content. 6. Avoid global installation by default. Use a project-local or isolated Skill directory and clearly document every file and directory the installer modifies. 7. Publish and verify cryptographic checksums or signed release artifacts for both the installer and Skill package. 8. Treat the external installer and fetched repository as separate audit targets before recommending their execution. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The skill documentation instructs users to run `npx skills add ...` without pinning an exact package version. This can fetch and execute whatever version is current at install time, creating a supply-chain risk if the package changes unexpectedly or is compromised. In a skill-installation context, this is more dangerous because users are likely to copy-paste the command directly and grant it execution on their local machine.

Natural-Language Policy Violations

Medium
Confidence
79% confidence
Finding
The category value is written in Chinese ("AI 治理"), which indicates a language-specific metadata choice. In this manifest there is no accompanying indication that users can choose locale or that the skill is intentionally limited to a Chinese-language or region-specific context.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The user-facing argparse description and argument help strings are entirely in Chinese, which imposes a specific language on users. The file does not indicate that the tool is intentionally region-specific or provide any opt-in or alternative locale support.

Natural-Language Policy Violations

Low
Confidence
81% confidence
Finding
The heading presents the attestation in Chinese first and the body content that follows is primarily Chinese, with no statement offering language selection or documenting that the skill is intentionally locale-specific. This can conflict with a language/locale policy requiring user choice or explicit justification for a fixed language.

Natural-Language Policy Violations

Low
Confidence
83% confidence
Finding
The English description says 'One-command pre-screening for 医疗健康', embedding a Chinese-only domain label rather than presenting a clear language option or localized equivalent. This can be read as a language/locale policy issue because the file mixes languages without giving users an explicit choice or opt-in.

Static analysis

No suspicious patterns detected.