Back to skill

Security audit

ytapi-youtube-channels

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a real YTAPI helper, but its setup flow gives the agent broad authority to create an account, handle verification secrets, and persist an API key across future sessions.

Review before installing. Prefer creating the YTAPI account and API key yourself in the provider UI, then provide the key only for the current session unless you explicitly want it stored. If you allow persistence, confirm exactly where YTAPI_API_KEY will be written and how to revoke or delete it later.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (15)

Ssd 3

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The instructions tell the agent to collect highly sensitive credentials from the user, including an API key and emailed verification code, and then persist the resulting key across future sessions. This centralizes secret handling in the agent workflow and creates a durable credential that could be misused if the environment, logs, or storage location are compromised.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill instructs the agent to write signup responses, signup tokens, and account-creation outputs to temporary files and later reuse them to obtain the API key. Even if intended to avoid output redaction, storing sensitive material in /tmp or similar locations increases exposure to other processes, forensic recovery, accidental reuse, and incomplete cleanup.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
85% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/auth-setup.md (reported line 94)May include surrounding context.

md
2. Check it in the current session without printing it, for example
   `test -n "$YTAPI_API_KEY" && echo set`. If the session must be reloaded to
   see it, reload it or tell the user.
3. Delete the temporary files: `rm -f /tmp/ytapi-signup.json /tmp/ytapi-verify.json`.

The user can sign in at https://ytapi.dev/auth/login?utm_source=skill with the same email to
see usage, manage keys and buy credits.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest describes channel lookup, uploads, videos, playlists, and playlist video reading, but later documentation also instructs use of a transcripts endpoint and batch submission/polling workflow. Transcript extraction and batch processing expand the skill beyond the narrow channel/playlist browsing scope claimed in the description.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 46)May include surrounding context.

bash
# Profile: title, handle, description, subscriber and video counts
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL" -H "Authorization: Bearer $YTAPI_API_KEY"

# Latest uploads
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL/latest" -H "Authorization: Bearer $YTAPI_API_KEY"

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 49)May include surrounding context.

bash
# Profile: title, handle, description, subscriber and video counts
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL" -H "Authorization: Bearer $YTAPI_API_KEY"

# Latest uploads
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL/latest" -H "Authorization: Bearer $YTAPI_API_KEY"

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 52)May include surrounding context.

bash
# Profile: title, handle, description, subscriber and video counts
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL" -H "Authorization: Bearer $YTAPI_API_KEY"

# Latest uploads
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL/latest" -H "Authorization: Bearer $YTAPI_API_KEY"

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 55)May include surrounding context.

bash
# Profile: title, handle, description, subscriber and video counts
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL" -H "Authorization: Bearer $YTAPI_API_KEY"

# Latest uploads
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL/latest" -H "Authorization: Bearer $YTAPI_API_KEY"

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 61)May include surrounding context.

bash
# Profile: title, handle, description, subscriber and video counts
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL" -H "Authorization: Bearer $YTAPI_API_KEY"

# Latest uploads
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL/latest" -H "Authorization: Bearer $YTAPI_API_KEY"

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 73)May include surrounding context.

bash
# Profile: title, handle, description, subscriber and video counts
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL" -H "Authorization: Bearer $YTAPI_API_KEY"

# Latest uploads
curl -s "https://api.ytapi.dev/v1/channels/CHANNEL/latest" -H "Authorization: Bearer $YTAPI_API_KEY"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill tells the agent to determine how to persist environment variables across sessions and store YTAPI_API_KEY there, but it does not require an explicit user warning or consent before modifying local shell profiles, agent config, or secrets stores. Silent persistence of secrets can alter the host configuration and create lasting access the user did not clearly approve.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill directs the agent to create a third-party YTAPI account for the user and then persist the resulting credential, which goes beyond the stated purpose of simply looking up YouTube channels and playlists. This expands the agent’s authority into account provisioning and credential lifecycle management, increasing the chance of unauthorized actions, privacy issues, and unintended long-term access.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill requests the user’s email address to create a third-party account but provides no privacy notice, data handling explanation, or clarification that the email will be transmitted to an external service. Collecting personally identifiable information without transparent notice increases privacy and consent risk.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
92% confidence
Finding

This command transmits the user’s email address to an external service (ytapi.dev) to initiate account creation. While external transmission is necessary for signup, it is still security-relevant because it exports personal data to a third party and broadens the skill beyond read-only channel lookup.

Content

Scanner excerpt · references/auth-setup.md (reported line 37)May include surrounding context.

to request in one step.

bash
curl -s -X POST https://ytapi.dev/api/agent/signup \
  -H "Content-Type: application/json" \
  -d '{"email": "USER_EMAIL"}' \
  -o /tmp/ytapi-signup.json

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

This command sends the signup token and the user’s 6-digit verification code to the external service to finalize account creation and retrieve the API key. Because these values are authentication artifacts, transmitting them through the agent workflow materially increases risk if commands, files, or network activity are exposed.

Content

Scanner excerpt · references/auth-setup.md (reported line 60)May include surrounding context.

bash
TOKEN=$(sed -n 's/.*"signup_token":"\([^"]*\)".*/\1/p' /tmp/ytapi-signup.json)
curl -s -X POST https://ytapi.dev/api/agent/verify \
  -H "Content-Type: application/json" \
  -d "{\"signup_token\": \"$TOKEN\", \"code\": \"CODE\"}" \
  -o /tmp/ytapi-verify.json

Static analysis

No suspicious patterns detected.