T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:10- Finding
Unverified Remote Installer Is Piped Directly into a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This PPTX skill matches its stated purpose, but it uses an unverified remote installer and runs generated slide code with broad local file read/write access.
Review before installing. Use this only with trusted slide TSX files, avoid running it in directories containing secrets, and prefer installing Deno separately through a trusted package manager. A safer version would pin dependencies, use a lockfile, and scope Deno permissions to the exact input assets and output file.
SKILL.md:10Unverified Remote Installer Is Piped Directly into a Shell
scripts/generate.ts:1Dynamically Imported Slide Code Receives Unrestricted Filesystem Permissions
scripts/deno.json:6Remote Dependencies Are Not Protected by a Committed Integrity Lock
The skill installs Deno by piping a remotely fetched script directly into the shell, which executes unverified code from the network with the user's privileges. This is especially dangerous in an agent skill because installation may be treated as routine setup, increasing the chance of silent supply-chain compromise, MITM-induced execution, or malicious upstream changes.
{
"id": "deno-install",
"kind": "shell",
"command": "curl -fsSL https://deno.land/install.sh | sh",
"bins": ["deno"],
"label": "Install Deno (https://deno.land)",
},
The manifest description says to use the skill when a user asks to create 'presentations, slide decks, pitch decks, reports, or any PPTX file.' Terms like 'reports' and the broad phrasing around user asks are not narrowly scoped, which could overlap with common requests that do not actually intend PowerPoint generation.
The notes state that Deno auto-downloads '@pixel/pptx' from JSR on first run, which implies network activity and retrieval of external code. The document does not clearly warn users up front that first use will contact external services and download dependencies.