Back to skill

Security audit

youtube copy of yt

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to do what it says, but users should understand it sends YouTube video URLs to APIFY and uses an APIFY API token.

Install only if you are comfortable sharing the requested YouTube video URL and related request metadata with APIFY. Use a dedicated, least-privileged APIFY token where possible, keep it out of source control, consider avoiding permanent shell startup storage, and rotate the token if it may have appeared in logs because this script sends it as a query parameter.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/fetch_transcript.py:99
Finding

APIFY API Token Exposed Through URL Query Parameters

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
README.md:42
Finding

Unpinned Third-Party Dependency Installation

Content
View full analysis
Remediation
View remediation
``` 2. Generate and verify cryptographic hashes for reproducible installation where practical, such as with a hash-locked requirements file. 3. Update the documentation to install from the reviewed manifest: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 4. Review and update pinned versions regularly so security fixes are not missed. 5. Recommend installation inside a dedicated virtual environment rather than into the system Python environment. 6. Advise users to install from a trusted package index and avoid running `pip` with administrative privileges. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (9)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

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

Add to ~/.bashrc or ~/.zshrc

export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"

Or use .env file (never commit this!)

echo 'APIFY_API_TOKEN=apify_api_YOUR_TOKEN_HERE' >> .env

text

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

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

Content

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

Add to ~/.bashrc or ~/.zshrc

export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"

Or use .env file (never commit this!)

echo 'APIFY_API_TOKEN=apify_api_YOUR_TOKEN_HERE' >> .env

text

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill explicitly states that transcript requests are routed through APIFY using residential proxies to bypass YouTube bot detection, but it does not clearly warn users that their requested URLs and related request metadata are sent to a third-party service. This creates a real transparency and privacy issue because users may unknowingly disclose their activity to an external provider operating proxy infrastructure.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
## Setup

1. Create free APIFY account: https://apify.com/
2. Get your API token: https://console.apify.com/account/integrations
3. Set environment variable:

Session Persistence

Medium
Category
Rogue Agent
Confidence
90% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

  1. Set environment variable:
bash
# Add to ~/.bashrc or ~/.zshrc
export APIFY_API_TOKEN="apify_api_YOUR_TOKEN_HERE"

# Or use .env file (never commit this!)

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 · scripts/fetch_transcript.py (reported line 32)May include surrounding context.

python
APIFY_ACTOR_ID = "karamelo~youtube-transcripts"
APIFY_API_BASE = "https://api.apify.com/v2"


def get_api_token():

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code sends the provided YouTube URL to the APIFY service via HTTP requests to fetch transcript data. While the module docstring names the APIFY API, it does not clearly warn the user that video-related data and results are transmitted to an external third-party service, which is the kind of network disclosure required for code files.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
80% 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 · scripts/fetch_transcript.py (reported line 103)May include surrounding context.

python
try:
        # Start the run
        response = requests.post(
            run_url,
            headers=headers,
            params=params,

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The markdown instructs users to export an APIFY_API_TOKEN, which is a sensitive credential, but provides no warning about handling or safeguarding it. Under the markdown-file criteria for missing user warnings, documentation should disclose privacy or security-relevant behaviors involving credentials.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.