Back to skill

Security audit

You2idea Extract

Security checks for vulnerabilities and agentic risk

Overview

The skill’s YouTube transcript analysis purpose is coherent, but it asks agents to install and run unpinned third-party tools and has under-disclosed transcript storage/upload behavior.

Review before installing. Use pinned, trusted versions of solograph and yt-dlp, avoid uvx execution of latest packages, run in a sandboxed workspace, confirm before writing docs/youtube-ideas.md, and do not enable any transcript upload or CDN deployment unless you understand the privacy and licensing implications.

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

T08 · Insecure Dependencies

Warning
Location
SKILL.md:44
Finding
Unpinned Third-Party Dependency Installation and Execution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:44-46`, `SKILL.md:76`, and `SKILL.md:121-129` **Vulnerability Type**: Unverified and unpinned third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash # Install if needed pip install solograph # or: uvx solograph ``` ```bash command -v yt-dlp >/dev/null 2>&1 && echo "yt-dlp: ok" || echo "Install: pip install yt-dlp" ``` ```markdown ### yt-dlp not found **Fix:** `pip install yt-dlp` or `brew install yt-dlp` ### No subtitles available **Cause:** Video has no auto-generated or manual captions. **Fix:** Try `--sub-lang en,ru` for multiple languages. Some videos only have auto-generated subs. ### solograph MCP not available **Fix:** Skills work in standalone mode (yt-dlp + Read). For indexed search across many videos, install solograph: `pip install solograph`. For enhanced web search, set up [SearXNG](https://github.com/fortunto2/searxng-docker-tavily-adapter) (private, self-hosted, free). ``` ### Technical Analysis The Skill instructs the user or Agent to install `solograph` and `yt-dlp` directly from mutable package registries without specifying reviewed versions, cryptographic hashes, a lockfile, or a trusted package index. Consequently, the dependency resolved during a future invocation may differ from the dependency available when the Skill was audited. The `uvx solograph` alternative is particularly sensitive because `uvx` obtains the package and immediately runs its entry point. A compromised package version, compromised publisher account, registry substitution, or malicious package selected through repository configuration could therefore introduce executable code into the Agent environment. The audit did not find evidence that the named packages are currently malicious. The vulnerability is the unsafe dependency acquisition and execution procedure. ### Attack Path 1. An attacker compromises a dependency publisher, package distribution channel, or package version ...[truncated 1396 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every dependency to a reviewed version rather than resolving the latest available release: ```bash python -m pip install "solograph==REVIEWED_VERSION" python -m pip install "yt-dlp==REVIEWED_VERSION" ``` 2. Maintain a hash-locked requirements file and require hash verification: ```text solograph==REVIEWED_VERSION --hash=sha256:EXPECTED_HASH yt-dlp==REVIEWED_VERSION --hash=sha256:EXPECTED_HASH ``` ```bash python -m pip install --require-hashes -r requirements.txt ``` 3. Document the canonical package repository and configure package installation to use only the intended trusted index. Avoid unreviewed extra indexes that could enable dependency confusion. 4. Replace unrestricted `uvx solograph` execution with a version-pinned invocation in an isolated environment. Do not download and immediately execute the latest package release. 5. Require explicit user confirmation before installing software or executing newly downloaded dependencies. 6. Run transcript-processing dependencies in a sandbox or container with: - No unnecessary credentials. - Read-only project access where possible. - A dedicated temporary output directory. - Restricted outbound network access. - No administrative privileges. 7. Establish a dependency update process that reviews release provenance and changes, updates pinned hashes, and performs security scanning before approving new versions. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The skill goes beyond transcript analysis and instructs installing and running an external CLI via Bash, which expands its capability surface from MCP-assisted idea extraction to arbitrary local package installation and command execution. That is dangerous because skill users may trigger environment changes and execute unreviewed third-party code in contexts where only analysis was expected.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The skill instructs use of `uvx solograph` without pinning a specific version, which creates a supply-chain risk: future or compromised releases could change behavior and be executed implicitly during skill use. In a skill that already has Bash and external-tool installation guidance, unpinned package execution meaningfully increases exposure to unintended code execution.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The standalone mode directs the agent to use `yt-dlp`, shell pipelines, and channel scraping loops, which materially broadens scope beyond the stated MCP-focused analysis role. This introduces risks from executing external binaries, processing attacker-controlled URLs/content, and bulk collection actions that may be unexpected or excessive for a simple idea-extraction skill.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The standalone flow hardcodes `--sub-lang en`, forcing English subtitles without user choice. This can cause incorrect or biased analysis, silently exclude preferred/native-language captions, and lead to data handling that does not match the user's expectations.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The pipeline explicitly downloads raw VTT subtitle files and uploads them to an external R2 CDN, which can broaden access to full transcript data beyond the original processing context. Even if YouTube subtitles are often public, republishing and centralizing them in bulk can create copyright, privacy, and data-governance risks, especially if users are not warned and access controls are not described.

Missing User Warnings

Low
Confidence
82% confidence
Finding
The skill writes results to `docs/youtube-ideas.md` without warning the user that it will modify the workspace. While not a direct code-execution issue, silent file creation/modification can surprise users, overwrite existing notes, or create unwanted artifacts in a repository.

Natural-Language Policy Violations

Low
Confidence
88% confidence
Finding
The troubleshooting note suggests `--sub-lang en,ru`, which embeds specific language choices into the skill behavior. Because the skill does not frame these as user-selected options or justify the locale limitation, this can violate language/locale policy expectations.