T09 · Insecure Skill Coding Practices
- Location
SKILL.md:39- Finding
Hardcoded API Key Exposed in Skill Documentation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a small YouTube URL parser/demo, but it exposes a credential-like API key and claims paid transcript functionality it does not implement.
Review before installing. Treat this package as a demo URL parser, not a working paid transcript service. The publisher should remove and rotate the exposed key, disclose any external provider and data sharing, implement transcript retrieval, and avoid returning paid status without real payment verification.
SKILL.md:39Hardcoded API Key Exposed in Skill Documentation
handler.py:4Unverified Payment Status and Misrepresented Transcript Functionality
The skill publishes a hardcoded API key directly in SKILL.md, exposing a secret to anyone who can view the file. This is unrelated to the user-facing transcript functionality and could allow unauthorized use of the backing service, quota theft, billing abuse, or pivoting into other systems if the key has broader scope.
The example trigger "Show video subtitles" is ambiguous because it does not explicitly mention YouTube, a URL, or other scope constraints. In a manifest-style markdown skill description, this can cause unintended invocation for generic subtitle-related requests rather than only YouTube transcript retrieval.
The skill does not warn users that provided YouTube URLs or video identifiers are sent to an external service to retrieve transcripts. This creates a privacy and transparency issue because users may not realize their request data is being disclosed to a third party, which is more concerning when combined with the exposed API integration details.
The file is labeled "YouTube Transcript", which indicates transcript retrieval capability. However, the implementation does not fetch or return any transcript data; it only parses a YouTube URL, extracts the video ID, and returns a demo/status payload saying a separate library should be used.