Back to skill

Security audit

ytapi-youtube-search

Security checks for vulnerabilities and agentic risk

Overview

The skill’s YouTube search function is legitimate, but its setup flow handles account creation, verification codes, API keys, and persistent local credential storage in ways users should review carefully before installing.

Install only if you are comfortable with the agent helping create or use a YTAPI account, sending your email and verification code to YTAPI, and storing a long-lived API key for future sessions. Prefer creating the account yourself in the YTAPI web UI and providing a key only when needed, or ask the agent to keep the key session-only.

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

Ssd 3

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill instructs the agent to solicit highly sensitive credentials from the user: an API key or, alternatively, an email address plus a 6-digit verification code that can be used to create an account and obtain an API key. It then directs the agent to persist the resulting credential for future sessions, greatly expanding the blast radius if the agent logs, memory, prompts, or local storage are exposed.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The instructions explicitly save signup and verification responses containing a signup token and later an API key to predictable temporary files under /tmp, then reuse those artifacts to obtain and persist credentials. Temporary files in shared or multi-user environments can be exposed through weak permissions, backups, crash reports, or later compromise, making sensitive authentication material easier to steal.

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
93% confidence
Finding

The manifest advertises a limited capability—searching YouTube and reading transcripts—but the documentation also authorizes creating a YTAPI account and key for the user. This mismatch is security-relevant because users and reviewers may not realize the skill can perform identity-linked third-party account provisioning and transmit personal data off-platform.

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 18)May include surrounding context.

md
homepage: https://ytapi.dev
    requires:
      bins:
        - curl
    primaryEnv: YTAPI_API_KEY
    envVars:
      - name: YTAPI_API_KEY

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill expands beyond YouTube search/transcript retrieval by instructing the agent to create a third-party YTAPI account on the user's behalf when no API key is present. That introduces account creation, consent, and data-sharing behavior not clearly scoped in the skill's primary purpose, which can cause unauthorized use of the user's email and unexpected third-party registration.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill permits using the user's email to create a YTAPI account without an explicit privacy warning that the email will be transmitted to an external service. This creates a real privacy and consent risk because personally identifiable information is shared with a third party for a purpose not strictly necessary if the user could instead provide their own API key.

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 43)May include surrounding context.

Search (1 credit per page)

bash
curl -s -G "https://api.ytapi.dev/v1/search" \
  --data-urlencode "q=QUERY" -d type=video -d limit=20 \
  -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 66)May include surrounding context.

Search (1 credit per page)

bash
curl -s -G "https://api.ytapi.dev/v1/search" \
  --data-urlencode "q=QUERY" -d type=video -d limit=20 \
  -H "Authorization: Bearer $YTAPI_API_KEY"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill directs the agent to determine how to persist YTAPI_API_KEY across future sessions and store it in shell profiles, agent config, or a secrets store, but it does not require explicit user consent or warn that this changes local configuration and creates a long-lived credential on the machine. Persisting a secret beyond the immediate task increases exposure if the host is shared, later compromised, or if the agent chooses an insecure storage location.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The account-creation prompt asks the user for an email address and later a verification code to be sent to ytapi.dev, but it does not clearly disclose that these personal and authentication-related data will be transmitted to a third-party service. This undermines informed consent and can expose users to privacy risk or unintended sharing of identifiers and account-recovery material.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This step transmits the user's email address to an external service (https://ytapi.dev/api/agent/signup) to initiate account creation. While that is functionally required for signup, it is still a security and privacy concern because it shares user data off-platform without an explicit warning or consent flow in the skill itself.

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
92% confidence
Finding

This step sends the signup token and user-provided verification code to an external verification endpoint, which is necessary for account creation but involves transmission of authentication material to a third-party service. If mishandled, intercepted, or logged, these values could be abused to complete account creation and mint an API key.

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

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
62% confidence
Finding

The manifest description appends a Chinese sentence without explaining whether the skill is bilingual by default or user-selectable. This can be interpreted as a language/locale presentation choice that is not explicitly offered as an opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.