T09 · Insecure Skill Coding Practices
- Location
scripts/fetch.mjs:517- Finding
Unnecessary Query Parameters in Valid YouTube URLs Are Forwarded to a Networked Process
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed YouTube caption extractor that uses yt-dlp, with a limited privacy caveat around forwarding full video URLs.
Install only if you are comfortable using a local yt-dlp binary to contact YouTube for the supplied video. Avoid private/client-sensitive videos and strip tracking, token, or other sensitive query parameters from YouTube URLs before using JSON or downstream logging.
scripts/fetch.mjs:517Unnecessary Query Parameters in Valid YouTube URLs Are Forwarded to a Networked Process
Referenced artifact was not completely inspected
Script: `scripts/fetch.mjs`
Referenced artifact was not completely inspected
Script: `scripts/fetch.mjs`
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
function runFetch(args, env = process.env) {
const fixtureScript = env.YOUTUBE_TRANSCRIPT_SELFTEST_FIXTURE_ARG || "";
const childEnv = { ...env };
delete childEnv.YOUTUBE_TRANSCRIPT_SELFTEST_FIXTURE_ARG;
const fetchArgs = fixtureScript ? ["--self-test-fixture", fixtureScript, ...args] : args;
return spawnSync(process.execPath, ["scripts/fetch.mjs", ...fetchArgs], {
The skill explicitly describes capabilities to access the network via yt-dlp and to expose selected environment state to a child process, but it does not declare an explicit tool/permission scope such as permissions or allowed-tools. That creates a governance gap: callers or reviewers may not get enforceable policy boundaries for network and environment access, increasing the chance of unintended invocation in sensitive contexts.