Back to skill

Security audit

Java Design Patterns

Security checks for vulnerabilities and agentic risk

Overview

This is a benign Java design-pattern reference skill, with caution that some sample code should not be copied into production unchanged.

Safe to install as a reference skill. Treat included Java snippets as educational examples, especially credential, session, database, and logging examples; review and harden them before using them in production. Do not run the bundled generation scripts unless you intentionally want them to read the referenced local crawl export and write generated files into your local Claude skills directory.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
data/metadata-mapping.md:94
Finding

Plaintext Password Persistence and Credential Disclosure Through Logging

Content
View full analysis
``` It creates users with plaintext passwords, modifies a password as plaintext, and logs complete user objects: ```java public static void main(String[] args) { // get service var userService = new UserService(); // use create service to add users for (var user : generateSampleUsers()) { var id = userService.createUser(user); LOGGER.info("Add user" + user + "at" + id + "."); } // use list service to get users var users = userService.listUser(); LOGGER.info(String.valueOf(users)); // use get service to get a user var user = userService.getUser(1); LOGGER.info(String.valueOf(user)); // change password of user 1 user.setPassword("new123"); // use update service to update user 1 userService.updateUser(1, user); // use delete service to delete user 2 userService.deleteUser(2); // close service userService.close(); } public static List generateSampleUsers() { final var user1 = new User("ZhangSan", "zhs123"); final var user2 = new User("LiSi", "ls123"); final var user3 = new User("WangWu", "ww123"); return List.of(user1, user2, user3); } ``` The documented output confirms that passwords are included in application logs: ```text 14:44:18.508 [main] INFO com.iluwatar.metamapping.App - Add userUser(id=1, username=ZhangSan, password=zhs123)at1. 14:44:18.509 [main] INFO com.iluwatar.metamapping.App - Add userUser(id=2, username=LiSi, password=ls123)at2. 14:44:18.512 [main] INFO com.iluwatar.me ...[truncated 2886 chars]
Remediation
View remediation
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (622)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The declared description presents the skill as a knowledge/reference tool for Java design patterns and principles. However, the supplied code chunk is not implementing query answering or pattern-selection behavior; it is a preprocessing utility that ingests previously crawled website data, filters slugs, and saves markdown/category files locally. While this may support building the skill's knowledge base, the actual code's primary purpose is data extraction and local file transformation, which is not reflected in the declared description. Therefore this is a description-behavior mismatch.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

声明描述的是一个面向最终用户的知识/问答型技能,核心能力应是提供 Java 设计模式、架构模式和设计原则方面的参考与实现说明。但给出的代码块并不实现任何问答、检索决策、模式推荐或设计原则分析逻辑;它只是一个构建脚本,用于从本地抓取和存储的数据生成参考文档。虽然这可能是该技能知识库的支持性构建步骤,但就该代码块本身而言,其实际用途是内容预处理与静态文档生成,且访问了具体本地路径资源,这些都没有在技能描述中体现。因此代码行为与声明用途存在明显不一致。

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 42)May include surrounding context.

md
| DRY | 不要重复自己 — 每份知识唯一表达 | [dry](references/principles/dry.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| DRY | 不要重复自己 — 每份知识唯一表达 | [dry](references/principles/dry.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 46)May include surrounding context.

md
| Liskov Substitution (LSP) | 里氏替换 — 子类型可透明替换父类型 | [liskov-substitution-principle](references/principles/liskov-substitution-principle.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| Liskov Substitution (LSP) | 里氏替换 — 子类型可透明替换父类型 | [liskov-substitution-principle](references/principles/liskov-substitution-principle.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 47)May include surrounding context.

md
| Interface Segregation (ISP) | 接口隔离 — 避免胖接口 | [interface-segregation-principle](references/principles/interface-segregation-principle.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| Interface Segregation (ISP) | 接口隔离 — 避免胖接口 | [interface-segregation-principle](references/principles/interface-segregation-principle.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 50)May include surrounding context.

md
| Minimise Coupling | 最小化耦合 — 降低模块间依赖 | [minimise-coupling](references/principles/minimise-coupling.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| Minimise Coupling | 最小化耦合 — 降低模块间依赖 | [minimise-coupling](references/principles/minimise-coupling.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 51)May include surrounding context.

md
| Maximise Cohesion | 最大化内聚 — 相关功能集中到单一模块 | [maximise-cohesion](references/principles/maximise-cohesion.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| Maximise Cohesion | 最大化内聚 — 相关功能集中到单一模块 | [maximise-cohesion](references/principles/maximise-cohesion.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 57)May include surrounding context.

md
| Code For The Maintainer | 为维护者编码 — 代码应易于维护和理解 | [code-for-the-maintainer](references/principles/code-for-the-maintainer.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| Code For The Maintainer | 为维护者编码 — 代码应易于维护和理解 | [code-for-the-maintainer](references/principles/code-for-the-maintainer.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 58)May include surrounding context.

md
| Boy-Scout Rule | 童子军规则 — 让代码比发现时更干净 | [boy-scout-rule](references/principles/boy-scout-rule.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| Boy-Scout Rule | 童子军规则 — 让代码比发现时更干净 | [boy-scout-rule](references/principles/boy-scout-rule.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 59)May include surrounding context.

md
| Robustness Principle | 健壮性原则 — 严以律己,宽以待人 | [robustness-principle](references/principles/robustness-principle.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| Robustness Principle | 健壮性原则 — 严以律己,宽以待人 | [robustness-principle](references/principles/robustness-principle.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 60)May include surrounding context.

md
| Orthogonality | 正交性 — 不相关的事物不应在系统中相关 | [orthogonality](references/principles/orthogonality.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 501)May include surrounding context.

md
| Orthogonality | 正交性 — 不相关的事物不应在系统中相关 | [orthogonality](references/principles/orthogonality.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 214)May include surrounding context.

md
| Abstract Factory | 抽象工厂 — 创建相关对象家族,无需指定具体类 | [abstract-factory](references/creational/abstract-factory.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 468)May include surrounding context.

md
| Abstract Factory | 抽象工厂 — 创建相关对象家族,无需指定具体类 | [abstract-factory](references/creational/abstract-factory.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 215)May include surrounding context.

md
| Builder | 建造者 — 分步构建复杂对象 | [builder](references/creational/builder.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 468)May include surrounding context.

md
| Builder | 建造者 — 分步构建复杂对象 | [builder](references/creational/builder.md) |

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 216)May include surrounding context.

md
| Dependency Injection | 依赖注入 — 将依赖从外部注入对象 | [dependency-injection](references/creational/dependency-injection.md) |