Back to skill

Security audit

springboot-standardizer

Security checks for vulnerabilities and agentic risk

Overview

This skill is not overtly malicious, but it needs Review because it can overwrite project files and generates a Redis configuration pattern that can be dangerous in real applications.

Install only if you intend to use a Chinese-language SpringBoot/MyBatis scaffolding aid. Run it in a clean output directory or version-controlled workspace, review every generated file before use, and replace the Redis Object/Jackson default-typing template with a safer typed serializer approach before deploying generated code.

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

T09 · Insecure Skill Coding Practices

Error
Location
scripts/generate_structure.py:252
Finding

Unsafe Jackson Polymorphic Deserialization in Redis Templates

Content
View full analysis
redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate template = new RedisTemplate<>(); template.setConnectionFactory(connectionFactory); Jackson2JsonRedisSerializer serializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper mapper = new ObjectMapper(); mapper.activateDefaultTyping( LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY ); serializer.setObjectMapper(mapper); StringRedisSerializer stringSerializer = new StringRedisSerializer(); template.setKeySerializer(stringSerializer); template.setHashKeySerializer(stringSerializer); template.setValueSerializer(serializer); template.setHashValueSerializer(serializer); template.afterPropertiesSet(); return template; } ``` ### Technical Analysis The generated Redis configuration enables Jackson default typing for all non-final classes and uses `LaissezFaireSubTypeValidator`, which does not impose a meaningful restriction on polymorphic subtypes. Serialized values may consequently include type metadata instructing Jackson which application or dependency class to instantiate. When an application reads an attacker-controlled Redis value through this `RedisTemplate`, Jackson may instantiate a class selected by the attacker. If the generated application's classpath co ...[truncated 2071 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/generate_structure.py:464
Finding

Insufficient Path Validation and Unconditional File Overwrite in Project Generator

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (15)

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The file presents the skill as able to analyze existing non-standard projects and standardize them, but the described workflow mostly points to scanning, reporting, and using templates. Overstating automation in a code-modifying context is dangerous because users may rely on the skill to safely transform real repositories when it may only produce partial scaffolds or generic guidance.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The file presents the skill as able to analyze existing non-standard projects and standardize them, but the described workflow mostly points to scanning, reporting, and using templates. Overstating automation in a code-modifying context is dangerous because users may rely on the skill to safely transform real repositories when it may only produce partial scaffolds or generic guidance.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/generate_structure.py (reported line 455)May include surrounding context.

python
Thumbs.db

### Environment ###
.env
.env.local
''',
}

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · scripts/generate_structure.py (reported line 456)May include surrounding context.

python
### Environment ###
.env
.env.local
''',
}

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill instructs use of local scripts that analyze project paths and generate output structures, implying file read/write behavior, but it declares no explicit tool scope or permissions. In an agent environment, missing scope boundaries can cause the skill to be invoked with broader filesystem access than users expect, increasing the risk of unintended reads or writes to sensitive project files.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases are broad enough to match ordinary refactoring or project-organization requests outside the narrow SpringBoot/MyBatis standardization use case. Overbroad activation can cause the wrong skill to run in unrelated contexts, potentially leading to inappropriate file operations, misleading advice, or template generation against projects the skill does not understand.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The description discusses restructuring projects and generating templates that may affect repository contents, but it does not warn users about possible file modifications or recommend reviewing changes before applying them. In a development workflow, this omission increases the chance of unreviewed writes, accidental overwrites, or propagation of incorrect boilerplate into important environments.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file presents all headings, explanations, and examples in Chinese, which can amount to a language policy violation if users are not explicitly given a language or locale choice. The file does not state that it is intended only for a Chinese-speaking audience or region-specific use case.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This Python file contains natural-language descriptions and CLI messages exclusively in Chinese, which effectively forces a specific language on users. The policy allows fixed locale behavior only when it is clearly documented and justified or when users can opt in, neither of which is present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script prints usage, error, progress, and completion messages only in Chinese, imposing a single language for interaction. There is no mechanism for locale selection and no clear justification that this tool is restricted to a Chinese-language context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This Python file contains natural-language strings entirely in Chinese, including the module description and all CLI help/output messages. Because the file is not documented as a China-specific or Chinese-only tool, this is a locale-policy issue under the rule for forced 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
89% confidence
Finding

The natural-language description, usage scenarios, and trigger phrases are all specified only in Chinese, with no indication that users may choose another language. Under the stated policy, a language-specific constraint should either be optional or explicitly justified as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file presents all instructions and examples exclusively in Chinese, with no indication that users may choose another language or locale. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file contains instructional content only in Chinese, starting with the title and continuing throughout the document. Under the policy rule for natural-language violations, forcing a specific language without user opt-in or a documented region-specific justification is in scope.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This markdown file presents all instructions and examples exclusively in Chinese, and it does not mention that the skill is China-specific or offer an alternative language. Under the natural-language policy rule, forcing a specific language without user opt-in can be a policy concern.

Content

No source excerpt is available for this finding.