Back to skill

Security audit

costume-size-chef

Security checks for vulnerabilities and agentic risk

Overview

This is a local, offline costume-planning helper with minor documentation and feature-quality issues, but no evidence of hidden, destructive, or data-exfiltrating behavior.

Install only if you are comfortable with the tool saving your entered costume inventory locally in the skill directory. Treat the feature list as approximate: it is useful for quick costume ideas, but some advertised filters and group options are incomplete or buggy.

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
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (14)

Tp4

High
Category
MCP Tool Poisoning
Confidence
88% confidence
Finding

The code is broadly aligned with the declared costume-assistant purpose: it helps assemble quick costumes from existing items, supports kid/adult categories, offers group options, provides safety guidance, and generates shopping lists. However, there are notable description/behavior mismatches. The description promises a difficulty-by-time-budget filter, but the implementation only filters by minutes and has no difficulty model. It also claims size adaptations for kid/adult wearers, yet the code merely labels recipes as kid/adult-compatible without adapting instructions or sizing. Group support exists, but couple-specific coordination is not implemented. Additionally, the find command accepts a theme argument but never uses it, so advertised thematic filtering is absent in practice. On the other hand, the code adds undeclared inventory storage/management functionality, though that is still related rather than wholly unrelated. Because the core purpose is mostly represented but several promised capabilities are missing or only superficially implemented, this is a mismatch overall.

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

md
python3 scripts/costume_chef.py inventory --item "black hoodie" --item "red striped shirt" --item "face paint set" --item "cardboard"

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
python3 scripts/costume_chef.py inventory --item "black hoodie" --item "red striped shirt" --item "face paint set" --item "cardboard"

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
python3 scripts/costume_chef.py inventory --item "black hoodie" --item "red striped shirt" --item "face paint set" --item "cardboard"

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
python3 scripts/costume_chef.py inventory --item "black hoodie" --item "red striped shirt" --item "face paint set" --item "cardboard"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python3 scripts/costume_chef.py inventory --item "black hoodie" --item "red striped shirt" --item "face paint set" --item "cardboard"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python3 scripts/costume_chef.py inventory --item "black hoodie" --item "red striped shirt" --item "face paint set" --item "cardboard"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python3 scripts/costume_chef.py inventory --item "black hoodie" --item "red striped shirt" --item "face paint set" --item "cardboard"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python3 scripts/costume_chef.py inventory --item "black hoodie" --item "red striped shirt" --item "face paint set" --item "cardboard"

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The docstring explicitly describes the tool as 'Stdlib only, offline,' which implies no external connectivity but can also suggest a purely non-persistent local helper. However, the implementation reads and writes a local JSON inventory file, creating persistent side effects. This is a documentation-to-code mismatch, albeit low severity because the persistence is local and aligned with the general skill purpose.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The command documentation says find accepts [--theme T], suggesting theme-based filtering is part of the command behavior. In the implementation, --theme is parsed but never used when selecting candidates, so the documented behavior contradicts actual code behavior. This is an intent-code divergence in the command documentation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The module command documentation presents list as the way to generate a consolidated buy list, while the manifest specifically claims a printable shopping list. The implementation only emits plain terminal output and does not create a file or formatted printable artifact. This is a mild documentation/intent mismatch rather than a security issue, but it is a real divergence between stated and actual behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill persistently stores user inventory data to a predictable local JSON file without clearly warning the user or offering consent/control. In this skill context the stored data is low sensitivity, so the risk is limited, but it can still surprise users and expose household information to other local users or processes with filesystem access.

Content

No source excerpt is available for this finding.