Back to skill

Security audit

clipwright

Security checks for vulnerabilities and agentic risk

Overview

This video skill needs review because troubleshooting can spend credits on additional renders without asking first.

Require a quote and your approval before additional diagnostic renders. Check existing runs first and preserve the same request key when retrying an uncertain response. For local installation, pin a reviewed package version; keep service credentials private and limit the credits available to the integration.

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
SKILL.md
Finding

Failure diagnostics instruct an additional paid render without a separate authorization gate

Content
View full analysis

Impact

Following the fallback can incur an additional charge. If the original request succeeded but its response was lost, the fresh key prevents deduplication against that request.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (10)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The chunk contains no Clipwright interaction, quoting, video generation, or MP4 retrieval. UUID generation could support a larger workflow, but no such connection is present in the supplied code; its only demonstrated purpose materially differs from the description.

Content

No source excerpt is available for this finding.

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

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

md
| Claude Code | `claude mcp add --transport http clipwright https://mcp.clipwright.io/mcp`, then `/mcp` in a session to sign in | verified live 2026-10-18 |
| Claude.ai, Claude Desktop | Customize → Connectors → Add custom connector, paste the URL | not yet verified live |
| ChatGPT | the URL as the remote MCP server of a plugin (OpenAI's guide "Connect and test your plugin") | not yet verified live |
| Cursor | `~/.cursor/mcp.json`: `{"mcpServers": {"clipwright": {"url": "https://mcp.clipwright.io/mcp"}}}` | not yet verified live |
| VS Code | `.mcp.json` at the workspace root: `{"mcpServers": {"clipwright": {"type": "http", "url": "https://mcp.clipwright.io/mcp"}}}` | not yet verified live |
| Gemini CLI | `gemini mcp add --transport http clipwright https://mcp.clipwright.io/mcp`, then `/mcp auth clipwright` | not yet verified live |
| Codex | `codex mcp add clipwright --url https://mcp.clipwright.io/mcp`, then `codex mcp login clipwright` | not yet verified live |

MCP Config Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

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

md
| Claude.ai, Claude Desktop | Customize → Connectors → Add custom connector, paste the URL | not yet verified live |
| ChatGPT | the URL as the remote MCP server of a plugin (OpenAI's guide "Connect and test your plugin") | not yet verified live |
| Cursor | `~/.cursor/mcp.json`: `{"mcpServers": {"clipwright": {"url": "https://mcp.clipwright.io/mcp"}}}` | not yet verified live |
| VS Code | `.mcp.json` at the workspace root: `{"mcpServers": {"clipwright": {"type": "http", "url": "https://mcp.clipwright.io/mcp"}}}` | not yet verified live |
| Gemini CLI | `gemini mcp add --transport http clipwright https://mcp.clipwright.io/mcp`, then `/mcp auth clipwright` | not yet verified live |
| Codex | `codex mcp add clipwright --url https://mcp.clipwright.io/mcp`, then `codex mcp login clipwright` | not yet verified live |

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
**Revoking.** The account holder revokes an app at
`https://app.clipwright.io/api-keys`, under **Connected apps**. Its next request
gets `401`. A connection lasts 90 days from approval and is not extended by
use: after that the app must sign in again. An access token lasts one hour;
clients renew it themselves.

**Files.** The hosted server cannot read files on the agent's machine, so

MCP server referenced without pinned version: 'npx -y -p @clipwright/mcp-server'.

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The installation command executes the mutable @latest release with automatic confirmation rather than a reviewed, fixed version. A compromised publisher account or malicious update could execute code with the agent's local permissions and access credentials available to the process; the author's prototype rationale does not remove this supply-chain risk.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx -y -p @clipwright/mcp-server'.

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

This persistent MCP configuration launches an unpinned npm release and passes it the service API key. A compromised future release could therefore gain local code execution and the ability to misuse that key without a corresponding configuration review.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

2026-10-18). Only the first-party client clipwright-agent may use this flow:

bash
curl -s https://mcp.clipwright.io/device/auth -d client_id=clipwright-agent \
  --data-urlencode "scope=mcp:read mcp:write offline_access" \
  --data-urlencode "resource=https://mcp.clipwright.io/mcp"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
direct SDK users never see them. The MCP tools are deliberately thin: `make_ugc`
returns as soon as the run starts, so a long render never blocks your turn.)

## 6. On failure — plain curl as a diagnosis splitter

If the MCP path does not get you to a playable video, hit the same public REST
directly with curl, bypassing MCP, SDK and CLI entirely. If curl gets through, the

The diagnostic fallback starts a paid render without first obtaining and showing a free quote.

Medium
Category
Excessive Agency
Confidence
99% confidence
Finding

The diagnostic fallback directly starts a paid render without quoting its price or obtaining specific approval for an additional diagnostic purchase. It also generates a fresh idempotency key each invocation, so repeated troubleshooting or an uncertain earlier response can produce additional billable runs rather than safely recovering the original request.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx -y -p @clipwright/mcp-server'.

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The summary repeats the instruction to execute @latest, reinforcing the same supply-chain exposure as the installation section. This is a duplicate occurrence of the unpinned dependency risk, not an independent exploit path.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.