Back to skill

Security audit

udi-format-validator

Security checks for vulnerabilities and agentic risk

Overview

The packaged skill is a local UDI format validator with no evident malicious behavior, though its install instructions and metadata should be read carefully.

Install only from the reviewed package or a pinned, trusted source rather than blindly fetching the latest raw GitHub file. Expect local Python execution and Chinese-first CLI output; do not rely on the tool as legal or regulatory advice without human review against official UDI requirements.

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 (9)

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
# UDI 格式校验器 / UDI Format Validator

![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)

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/udi-format-validator/scripts
curl -fsSL https://raw.githubusercontent.com/zhaoxinghua09-cell/agent-skills/main/skills/udi-format-validator/scripts/udi_format_validator.py -o ~/.claude/skills/udi-format-validator/scripts/udi_format_validator.py
python ~/.claude/skills/udi-format-validator/scripts/udi_format_validator.py --help

Session Persistence

Medium
Category
Rogue Agent
Confidence
86% confidence
Finding

The README instructs users to download executable code directly from a remote URL into a persistent agent skills directory and then run it. This creates a supply-chain and persistence risk: if the remote content changes or the source is compromised, malicious code could be installed and retained across sessions without any integrity verification.

Content

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

Install & Try / 安装即试

bash
mkdir -p ~/.claude/skills/udi-format-validator/scripts
curl -fsSL https://raw.githubusercontent.com/zhaoxinghua09-cell/agent-skills/main/skills/udi-format-validator/scripts/udi_format_validator.py -o ~/.claude/skills/udi-format-validator/scripts/udi_format_validator.py
python ~/.claude/skills/udi-format-validator/scripts/udi_format_validator.py --help

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill markets itself as a zero-dependency deterministic local validator, but the manifest/risk text introduces broader capabilities such as API use and file writes. This kind of capability-scope mismatch can mislead reviewers and agents about the actual trust boundary, causing the skill to be approved or invoked under weaker assumptions than its metadata warrants.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The risk rationale says the skill may perform API access, file reads/writes, and local execution, while the rest of the skill presents a simple validator workflow. Contradictory risk documentation weakens security review because operators cannot reliably determine whether the skill is safe for low-trust use or whether stronger approval gates are needed.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The markdown workflow says simply 'Trigger → run the script per usage', but it does not specify what exact phrases, contexts, or conditions should activate the skill. This is vague enough to allow unintended invocation because 'Trigger' is undefined and no exclusions or negative examples are provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file’s natural-language interface is consistently hard-coded in Chinese, including comments, argparse descriptions, error messages, notes, and printed results. Because this is a user-facing CLI and no language/locale choice is offered, it violates the policy against forcing a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The skill description is primarily presented in Chinese, with only a brief English line, and the sample output is also Chinese. For a general-purpose skill README, this can amount to an implicit language/locale constraint without explicit user opt-in or a documented regional limitation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest prominently sets the display name in Chinese and the sample output is shown in Chinese, but the document does not state that language selection is optional or user-configurable. This can violate language/locale policy where skills should not force a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.