Back to skill

Security audit

YouTube Transcript Analyzer

Security checks for vulnerabilities and agentic risk

Overview

The skill has a legitimate YouTube transcript purpose, but it can automatically download and run an unverified executable into the user's home directory.

Review before installing. This skill is not clearly malicious, but use it only if you are comfortable with a skill downloading and running yt-dlp from GitHub under your user account. Safer handling would require preinstalling yt-dlp from a trusted source or pinning and verifying the downloaded binary before execution.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Warning
Location
scripts/extract_transcript.sh:18
Finding

Unverified Remote Executable Download and Execution

Content
View full analysis
/dev/null; then # Try to find it in home directory if [ -f "$HOME/yt-dlp" ]; then YT_DLP="$HOME/yt-dlp" else echo "Error: yt-dlp not found. Installing to ~/yt-dlp..." curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o "$HOME/yt-dlp" chmod +x "$HOME/yt-dlp" YT_DLP="$HOME/yt-dlp" fi else YT_DLP="yt-dlp" fi echo "Extracting transcript from: $VIDEO_URL" # Extract transcript as VTT subtitle file $YT_DLP --write-auto-sub --write-sub --sub-lang en --skip-download --sub-format vtt "$VIDEO_URL" -o "temp_transcript" --quiet 2>/dev/null || { ``` ### Technical Analysis When `yt-dlp` is unavailable locally, the script retrieves an executable from a mutable `latest` release URL, marks it executable, and invokes it. The downloaded artifact is not pinned to a reviewed version and is not validated using a cryptographic checksum or signature. Although the URL points to the official yt-dlp GitHub repository and uses HTTPS, the effective code executed by the skill can change after the skill itself has been reviewed. Compromise of the upstream project, its release process, its hosting account, or the published release artifact could therefore introduce attacker-controlled code. HTTPS alone authenticates the delivery endpoint; it does not establish that the artifact is a specific reviewed binary. The script also trusts an existing executable at `$HOME/yt-dlp` without verifying its ownership or integrity. This is consistent with ordinary local executable lookup behavior, but it increases reliance on the security of the user's home directory. ### Attack Path 1. The target environmen ...[truncated 1503 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The skill description materially understates operational behavior by omitting that it may download yt-dlp from GitHub and relies on external network access and binary acquisition. Undeclared downloading and execution of tooling is dangerous because it expands the trust boundary, can bypass user/operator expectations, and may introduce supply-chain risk if the fetched binary or source is compromised.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script downloads a remote binary and marks it executable, after which it is used to process user input. This is dangerous because any compromise of the download path, release asset, or network trust chain could result in arbitrary code execution under the user's account, and the behavior is not necessary to fulfill transcript extraction safely.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill instructs use of a shell script but does not declare any tool scope or allowed-tools restrictions. That makes the skill's execution capabilities implicit rather than governed, increasing the chance of unintended shell access or unsafe command execution in environments that honor skill metadata for sandboxing and approval.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest description says to use the skill when users request video summaries or ask to "analyze this YouTube video," and also says it "handles any YouTube URL." These activation cues are broad and lack negative examples or tighter constraints, which could cause unintended invocation for generic summarization or link-analysis requests.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script silently expands its behavior from transcript extraction into software installation by downloading yt-dlp into the user's home directory. Even though the source URL appears legitimate, auto-installing an executable without explicit consent, integrity verification, or package-manager mediation creates a supply-chain and unexpected-execution risk that exceeds the stated skill purpose.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script performs network download, file creation in the home directory, permission changes, and subsequent execution without prominently warning the user. In a skill whose stated purpose is transcript extraction, this hidden side effect materially increases risk because users may not expect the tool to fetch and trust executable code from the internet.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The hardcoded '--sub-lang en' setting imposes an English-only locale choice. This is a natural-language/locale policy concern because the script does not offer opt-in language selection or explain why English is required.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.