Back to skill

Security audit

YouTube-Hook

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed YouTube content helper with an optional Tavily trend-search script that uses only the Tavily API key and does not show hidden persistence, local data access, or destructive behavior.

Install only if you are comfortable giving the skill access to a Tavily API key for optional trend searches. Avoid passing private topics or sensitive business plans to the trend analyzer unless you are comfortable sending that query to Tavily; otherwise use the offline title, hook, and script-generation parts.

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
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Tainted flow: 'api_key' from os.environ.get (line 17, credential/environment) → requests.post (network output)

Critical
Category
Data Flow
Confidence
90% confidence
Finding

Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.

Content

Scanner excerpt · scripts/trend_analyzer.py (reported line 21)May include surrounding context.

python
if not api_key:
        return {"error": "TAVILY_API_KEY not set"}
    
    response = requests.post(
        'https://api.tavily.com/search',
        json={
            'api_key': api_key,

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared skill purpose is content generation, but the detected behavior extends to external trend/search retrieval using Tavily and secret-backed network access. This mismatch is dangerous because users and reviewers may authorize the skill expecting offline text generation while it can make outbound requests, process external content, and use credentials in ways not transparently described.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
91% confidence
Finding

The skill metadata declares an environment variable requirement and references script files, but does not declare an explicit tool scope or allowed tools. That creates an authorization gap where the runtime may permit network or secret-backed behavior that is not clearly disclosed to users or policy controls, increasing the chance of over-privileged execution.

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

python
Trend analyzer using Tavily API
SECURITY MANIFEST:
  Environment variables accessed: TAVILY_API_KEY (only)
  External endpoints called: https://api.tavily.com/ (only)
  Local files read: none
  Local files written: none
"""

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/trend_analyzer.py (reported line 22)May include surrounding context.

python
Trend analyzer using Tavily API
SECURITY MANIFEST:
  Environment variables accessed: TAVILY_API_KEY (only)
  External endpoints called: https://api.tavily.com/ (only)
  Local files read: none
  Local files written: none
"""

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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/trend_analyzer.py (reported line 21)May include surrounding context.

python
if not api_key:
        return {"error": "TAVILY_API_KEY not set"}
    
    response = requests.post(
        'https://api.tavily.com/search',
        json={
            'api_key': api_key,

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/trend_analyzer.py (reported line 21)May include surrounding context.

python
if not api_key:
        return {"error": "TAVILY_API_KEY not set"}
    
    response = requests.post(
        'https://api.tavily.com/search',
        json={
            'api_key': api_key,

Static analysis

No suspicious patterns detected.