Back to skill

Security audit

PPTX Generator

Security checks for vulnerabilities and agentic risk

Overview

This presentation skill has a coherent purpose, but it tells the agent to run Python scripts outside the reviewed package and to install unpinned dependencies, so users should review it before installing.

Install only if you trust the surrounding project that supplies ../../scripts/build_deck.py, read_deck.py, read_notes.py, and edit_deck.py, and can constrain where specs and output files are written. Prefer a version that bundles reviewed scripts, pins dependencies, and requires explicit confirmation before in-place edits or package installation.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T07 · Tool Hijacking and Spoofing

Error
Location
AGENT.md:8
Finding

Execution of Unbundled Code Outside the Audited Skill Boundary

Content
View full analysis
/save_data/venv/pptx/bin/python3 ../../scripts/read_deck.py /save_data/venv/pptx/bin/python3 ../../scripts/edit_deck.py list ``` ``` The same external execution pattern is repeated in the hooks: ```markdown /save_data/venv/pptx/bin/python3 ../../scripts/build_deck.py --dry-run ../../examples/my_spec.json /save_data/venv/pptx/bin/python3 ../../scripts/build_deck.py ../../examples/my_spec.json ``` ```markdown /save_data/venv/pptx/bin/python3 ../../scripts/edit_deck.py ../../output_demo.pptx list /save_data/venv/pptx/bin/python3 ../../scripts/edit_deck.py ../../output_demo.pptx delete 2 -o ../../output_demo_edited.pptx /save_data/venv/pptx/bin/python3 ../../scripts/edit_deck.py ../../output_demo.pptx duplicate 0 --after 3 /save_data/venv/pptx/bin/python3 ../../scripts/edit_deck.py ../../output_demo.pptx reorder "0,2,1,3" /save_data/venv/pptx/bin/python3 ../../scripts/edit_deck.py ../../output_demo.pptx update-text 1 0 "New Title" /save_data/venv/pptx/bin/python3 ../../scripts/edit_deck.py ../../output_demo.pptx replace "old" "new" ``` ### Technical Analysis The audited package contains only Markdown instruction and configuration files. It does not contain the referenced `build_deck.py`, `read_deck.py`, `read_notes.py`, or `edit_deck.py` implementations. Despite their absence, the Skill directs the Agent to execute these programs through paths such ...[truncated 2378 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:20
Finding

Unpinned Runtime Installation of Third-Party Python Dependencies

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (7)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
Full spec documentation is in root `SKILL.md` (project level). Key elements:

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · AGENT.md (reported line 38)May include surrounding context.

md
## Rule 4 — Output Management
- Generated decks go to `../../<output_name>.pptx`
- Never overwrite existing files without asking
- Use `-o <output.pptx>` flag on edit_deck.py when modifying existing decks
- If specs ask for same output name, increment: `output_demo.pptx` → `output_demo_2.pptx`

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases are broad enough to match ordinary user editing requests such as changing text, deleting slides, or reordering content, which can cause this skill to activate in situations where the user did not explicitly intend file-modifying deck operations. Because the skill can overwrite the input deck unless -o is used, overly permissive triggering increases the chance of unintended destructive edits to user files.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are very broad and match common requests like 'create slides' or 'make a pptx', which can cause the skill to activate in situations the user did not explicitly intend. In an agent setting, ambiguous invocation increases the chance of unintended file generation or execution of deck-building workflows from casual natural-language prompts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The hook documents that full generation writes a .pptx file to the path specified by the JSON spec, but it does not prominently warn that the output location is effectively user/spec-controlled. In a system that accepts relative or absolute paths, this can lead to unintended file writes, overwrites, or writes outside the expected workspace if upstream validation is weak.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file sets a fixed locale value of en_IN as a default, which is a natural-language and locale preference constraint. The policy for this audit flags locale restrictions when they are imposed without offering user choice or documenting a justified regional requirement.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The trigger section includes phrases like "read this deck" and "inspect presentation," which are relatively generic and could overlap with ordinary conversation about presentations. The file does not provide negative examples or clear boundaries for when the skill should not activate.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.