Back to skill

Security audit

pmcf-plan-check

Security checks for vulnerabilities and agentic risk

Overview

The checker script is simple and local, but the skill metadata and install instructions grant broader, persistent authority than the stated checker needs.

Review before installing. Prefer the packaged script or a pinned commit, verify the script contents before adding it to a persistent skills directory, and narrow the skill permissions to the minimum needed to read PMCF input and run the local checker.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (7)

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · README.md (reported line 1)May include surrounding context.

md
# PMCF 计划完整性检查器 / PMCF Plan Completeness Checker

![license](https://img.shields.io/badge/license-MIT-blue) ![python](https://img.shields.io/badge/python-3.8%2B-green) ![deps](https://img.shields.io/badge/deps-zero-orange) ![LGD](https://img.shields.io/badge/LGD--Powered-三律-teal)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

Line L11 presents a loose set of keywords without explaining how many must match, in what context they apply, or when the skill should not activate. Several terms are common regulatory or clinical phrases, so using them as triggers could cause unintended invocation in ordinary discussions of PMCF, CER, or notified bodies.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · README.md (reported line 15)May include surrounding context.

Install & Try / 安装即试

bash
mkdir -p ~/.claude/skills/pmcf-plan-check/scripts
curl -fsSL https://raw.githubusercontent.com/zhaoxinghua09-cell/agent-skills/main/skills/pmcf-plan-check/scripts/pmcf_plan_check.py -o ~/.claude/skills/pmcf-plan-check/scripts/pmcf_plan_check.py
python ~/.claude/skills/pmcf-plan-check/scripts/pmcf_plan_check.py --help

Session Persistence

Medium
Category
Rogue Agent
Confidence
74% confidence
Finding

The README instructs users to download code directly from a remote URL into a persistent agent skill directory under the home folder. This creates a supply-chain and persistence risk: if the remote content changes or is compromised, the installed code may be re-used across future sessions with user trust, increasing the blast radius beyond a one-time script run.

Content

Scanner excerpt · README.md (reported line 15)May include surrounding context.

Install & Try / 安装即试

bash
mkdir -p ~/.claude/skills/pmcf-plan-check/scripts
curl -fsSL https://raw.githubusercontent.com/zhaoxinghua09-cell/agent-skills/main/skills/pmcf-plan-check/scripts/pmcf_plan_check.py -o ~/.claude/skills/pmcf-plan-check/scripts/pmcf_plan_check.py
python ~/.claude/skills/pmcf-plan-check/scripts/pmcf_plan_check.py --help

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description consistently frames the skill as a local, deterministic checker that evaluates PMCF plans and returns rc/JSON results. However, the manifest declares broad capabilities (Bash, Write, Task) and the risk rationale explicitly mentions API calls, file writes, and local execution, which materially exceed what the described checker function appears to require.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest says the CLI entry point is scripts/pmcf_plan_check.py with structured JSON IR on stdout and rc=0/1/2, but the usage text documents different arguments such as --input, --json, --rc_level, --input_file, --output_format json, and --required_rc. These incompatible parameter and interface descriptions indicate the documentation is not describing the same behavior/interface it claims to expose.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
71% confidence
Finding

The file presents core instructions and examples in a Chinese-first bilingual format, but it does not state whether users may choose their preferred language or whether output/invocation is language-dependent. Under the language/locale policy, a skill should not implicitly force a language mode without opt-in or a documented justification.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.