Back to skill

Security audit

code-game-trailer

Security checks for vulnerabilities and agentic risk

Overview

ClawScan marks this game trailer creation skill suspicious because it reports risky file handling and a path validation flaw, while inspection of some files was incomplete.

Consider avoiding installation until the directory deletion and path exposure issues are reviewed and corrected. If you proceed, use a disposable environment with no important files, and remember that six files were only partially inspected.

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

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/capture.ts
Finding

Static-server path validation permits access to sibling directories

Content
View full analysis

Impact

Disclosure of readable files in matching-prefix sibling directories. Page JavaScript can read the response from its own origin, exposing data outside the selected game directory.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (14)

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
For your own game: copy `examples/lantern-canyon/director.json` next to the game's `index.html`, point

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
{ "url": "index.html", "fps": 30, "width": 1920, "height": 1080, "seed": 7, "bpm": 100,

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| `scripts/director-runtime.js` | in-page half: trailer camera override, overlays, hidden selectors, letterbox, events |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| `scripts/cdp.ts` | minimal Chrome DevTools Protocol client (launch, inject, keys, mouse, screenshot) |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| `scripts/capture.ts` | director JSON → frames + manifest; `--stills`, `--only`, `--verify`, `--gl swiftshader` |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| `scripts/cut.ts` | frames → master MP4: order, fades, grade, mix, two-pass loudnorm |

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
| `scripts/check.ts` | duplicates, freezes, black frames, loudness, contact sheet, text/IP/claim audit |

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · cards/card.html (reported line 7)May include surrounding context.

html
<meta charset="utf-8">
<title>Trailer card</title>
<link rel="icon" href="data:,">
<!-- A title / end card for code-game-trailer. Use it as a director shot: { "card": "cards/card.html?title=...", "beats": 3 }.
     Query: kicker, title, sub, foot (all optional text), accent (hex without #, default ff5315), bg (hex, default 030507),
     embers=0 to switch the drifting embers off. The CSS animations and the canvas run on the recorder's virtual
     clock, so every frame is exact. Change the font stack for your game; system fonts need no loading. -->

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
80% confidence
Finding

Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Content

Scanner excerpt · references/sound-and-cut.md (reported line 87)May include surrounding context.

md
| text | only your game's words | debug words, franchise names, claims without proof are flagged |

The example's final run: 0 duplicates and 0 black frames in all gameplay shots, -13.7 LUFS, -1.4 dBFS
true peak, 1920x1080 30 fps H.264 + AAC, no warnings. Then look at the sheet: the first sheet of this
example passed every number and still showed a three-second opening in which the hero never entered
the frame.

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
80% confidence
Finding

Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Content

Scanner excerpt · scripts/check.ts (reported line 115)May include surrounding context.

ts
if (CLAIM.test(text)) warn(`${where}: claim "${text.match(CLAIM)![0]}": keep it only if NOTES.md proves it`);
}
await Bun.write(video.replace(/\.mp4$/, '') + '.check.json', JSON.stringify(report, null, 1));
console.log(report.warnings.length ? `${report.warnings.length} warning(s); now open the sheet and look at it` : 'no warnings; now open the sheet and look at it');

Code capability 'network' detected in scripts/capture.ts but not covered by declared permissions.

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'network' capability that is not covered by the declared 'allowed-tools' preapproval. Review the host runtime's actual enforcement policy; runtime permissions are unknown unless separately verified, and this declaration alone does not establish a permission ceiling.

Content

No source excerpt is available for this finding.

Code capability 'env' detected in scripts/cdp.ts but not covered by declared permissions.

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'env' capability that is not covered by the declared 'allowed-tools' preapproval. Review the host runtime's actual enforcement policy; runtime permissions are unknown unless separately verified, and this declaration alone does not establish a permission ceiling.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx skills'.

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Recording silently deletes the entire existing shot directory before capturing new frames.

Medium
Category
Output Handling
Confidence
99% confidence
Finding

Recording recursively deletes the computed shot directory without confirmation or verifying that it contains only generated frames. Because both the output location and shot ID come from the director configuration, a malicious or mistaken configuration can use traversal components such as '..' to delete directories outside the intended capture area with the running user's privileges.

Content

No source excerpt is available for this finding.