T09 · Insecure Skill Coding Practices
- Location
scripts/apply.py:133- Finding
Spreadsheet Formula Injection in Generated Comparison Workbooks
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill largely does what it claims, but its generated Excel audit files can contain active formulas from untrusted deck text.
Review before installing if you process decks from outside your organization. Until formula escaping is fixed, open generated XLSX files in protected mode and treat source decks/edit JSON as trusted input. Install from a verified repository in a virtual environment with pinned dependencies.
scripts/apply.py:133Spreadsheet Formula Injection in Generated Comparison Workbooks
README.md:38Unpinned Third-Party Dependencies and Unresolved Installation Source
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The finding indicates the skill may actually center on style analysis/distillation, including PDF inputs, rather than the deck transformation system described. While not a classic exploit path, this mismatch can still expose users to process integrity issues and unintended data-sharing expectations for unsupported file types and workflows.
The README states that 'McKinsey is the default baseline' and that additional references are layered on top of that base, which imposes a specific organizational language/style policy by default. This is a natural-language policy concern because users are not presented with an explicit opt-in or neutral default before the style constraint is applied.
The skill explicitly describes writing .pptx, .xlsx, and HANDOFF.md files, but it does not declare a constrained tool scope such as permissions or allowed-tools. In an agent setting, missing tool scoping broadens what the skill may cause the runtime to do and weakens least-privilege controls around file modification.
The description says the system takes decks from a Chinese draft to "McKinsey-polished English" and describes polish-only as applying to single-language decks, but it does not offer the user any language/locale choice or explain why English is mandatory. Under the policy, forcing a specific language without opt-in is a natural-language policy violation.
The changelog describes a "Polish-only mode for single-language decks," which is a natural-language locale constraint. In this file, there is no indication that the mode is user-selected or that the locale restriction is documented as justified, so it may conflict with the policy against forcing a specific language without opt-in.
The default output name appends the fixed suffix '终版', imposing a specific locale in a user-visible artifact without offering a language choice. This is a natural-language policy concern because the skill does not provide opt-in or document a justified locale restriction.
No suspicious patterns detected.