Back to skill

Security audit

Wall Mounted Faucet Layout

Security checks for vulnerabilities and agentic risk

Overview

This skill is a focused wall-mounted faucet geometry calculator with proportionate local scripts and diagram assets.

Install this if you want an agent to calculate faucet layout dimensions or generate annotated SVG diagrams. Use clear project-specific output filenames for generated diagrams, and treat the results as geometric estimates that still need on-site verification.

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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (18)

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · assets/wall_mounted_faucet_geometry_v2.svg (reported line 61)May include surrounding context.

text
<text x="50" y="48" class="title">Wall-mounted faucet and basin geometry</text>
  <text x="50" y="82" class="small">All horizontal distances use the finished wall as the common origin.</text>

  <!-- LEFT DIAGRAM -->
  <text x="50" y="125" class="subtitle">SIDE VIEW (cross-section)</text>

  <!-- Key x-coordinates:

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · assets/wall_mounted_faucet_geometry_v2.svg (reported line 69)May include surrounding context.

text
outlet y=285, rim y=500, drain target y=755
  -->

  <!-- wall / counter -->
  <rect x="95" y="150" width="32" height="650" class="wall"/>
  <rect x="110" y="755" width="930" height="34" class="counter"/>

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · assets/wall_mounted_faucet_geometry_v2_zh.svg (reported line 61)May include surrounding context.

text
<text x="50" y="48" class="title">壁挂式龙头与台盆几何关系</text>
  <text x="50" y="82" class="small">所有水平距离均以完成墙面为共同原点。</text>

  <!-- LEFT DIAGRAM -->
  <text x="50" y="125" class="subtitle">侧视图(剖面)</text>

  <!-- Key x-coordinates:

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · assets/wall_mounted_faucet_geometry_v2_zh.svg (reported line 61)May include surrounding context.

text
<text x="50" y="48" class="title">壁挂式龙头与台盆几何关系</text>
  <text x="50" y="82" class="small">所有水平距离均以完成墙面为共同原点。</text>

  <!-- LEFT DIAGRAM -->
  <text x="50" y="125" class="subtitle">侧视图(剖面)</text>

  <!-- Key x-coordinates:

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

Install as a user skill:

bash
mkdir -p ~/.codex/skills
git clone https://github.com/starsy/wall-mounted-faucet-layout-skill.git ~/.codex/skills/wall-mounted-faucet-layout

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 18)May include surrounding context.

安装为用户级 skill:

bash
mkdir -p ~/.codex/skills
git clone https://github.com/starsy/wall-mounted-faucet-layout-skill.git ~/.codex/skills/wall-mounted-faucet-layout

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.zh-CN.md (reported line 18)May include surrounding context.

安装为用户级 skill:

bash
mkdir -p ~/.codex/skills
git clone https://github.com/starsy/wall-mounted-faucet-layout-skill.git ~/.codex/skills/wall-mounted-faucet-layout

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · README.zh-CN.md (reported line 18)May include surrounding context.

安装为用户级 skill:

bash
mkdir -p ~/.codex/skills
git clone https://github.com/starsy/wall-mounted-faucet-layout-skill.git ~/.codex/skills/wall-mounted-faucet-layout

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 27)May include surrounding context.

如果你的 Claude 运行环境支持本地 skill 目录:

bash
mkdir -p ~/.claude/skills
git clone https://github.com/starsy/wall-mounted-faucet-layout-skill.git ~/.claude/skills/wall-mounted-faucet-layout

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.zh-CN.md (reported line 27)May include surrounding context.

如果你的 Claude 运行环境支持本地 skill 目录:

bash
mkdir -p ~/.claude/skills
git clone https://github.com/starsy/wall-mounted-faucet-layout-skill.git ~/.claude/skills/wall-mounted-faucet-layout

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% 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 62)May include surrounding context.


When asked about wall-mounted faucet installation geometry, read and follow vendor/skills/wall-mounted-faucet-layout/SKILL.md. Prefer the deterministic calculator at vendor/skills/wall-mounted-faucet-layout/scripts/faucet_geometry.py.

text

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% 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.zh-CN.md (reported line 62)May include surrounding context.


When asked about wall-mounted faucet installation geometry, read and follow vendor/skills/wall-mounted-faucet-layout/SKILL.md. Prefer the deterministic calculator at vendor/skills/wall-mounted-faucet-layout/scripts/faucet_geometry.py.

text

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
87% confidence
Finding

The skill instructs the agent to generate an SVG file and explicitly write output to a user-visible path, but it does not declare any tool/permission scope limiting file-write behavior. In an agent framework, undeclared write capability increases the risk of unintended filesystem modification, path misuse, or writing artifacts to sensitive or unexpected locations if inputs are not constrained.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

This SVG contains all user-facing labels and explanations in Chinese, as reflected in the title and subsequent annotations. Because the file provides no opt-in, alternative locale, or documented region-specific justification within the file, it appears to impose a specific language choice.

Content

No source excerpt is available for this finding.

Dynamic attribute access via getattr()

Low
Category
Dangerous Code Execution
Confidence
50% confidence
Finding

Dynamic getattr() with a non-literal attribute name can access arbitrary object attributes, potentially bypassing access controls.

Content

Scanner excerpt · scripts/faucet_geometry.py (reported line 44)May include surrounding context.

python
a.WS = a.W / 2

    for name in REQUIRED_INPUTS[a.solve]:
        if getattr(a, name) is None:
            if name == "WS":
                parser.error(f"--WS is required when --solve {a.solve}, or provide --W to assume a centered drain")
            parser.error(f"--{name} is required when --solve {a.solve}")

Static analysis

No suspicious patterns detected.