T09 · Insecure Skill Coding Practices
- Location
scripts/ymctl.py:173- Finding
OAuth Token Forwarded to an Unvalidated Redirect Host
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears intended for Yandex Music use, but it should be reviewed because it stores and forwards a reusable account token with avoidable safety issues.
Install only if you are comfortable giving this helper a reusable Yandex Music token and letting it modify liked tracks. Prefer a temporary environment token over saved config, avoid passing tokens directly on the command line, and review or fix the redirect-host validation and dependency pinning before routine use.
scripts/ymctl.py:173OAuth Token Forwarded to an Unvalidated Redirect Host
scripts/ymctl.py:358OAuth Tokens Exposed Through Command-Line Arguments
SKILL.md:26Unpinned Third-Party Package Installation Creates Supply-Chain Exposure
scripts/ymctl.py:11Incorrect Default Path Causes Unnecessary Root-Level Filesystem Mutation
The skill exposes shell, network, environment, and file read/write capabilities but does not declare any explicit tool scope or permission boundaries. That omission increases the chance an agent can invoke broader-than-necessary operations, including token persistence and package installation, without clear governance or least-privilege constraints.
The skill is presented as inspection/search oriented, but it documents state-changing actions such as like/unlike and auth-set/auth-clear. This mismatch can mislead an agent or user into authorizing the skill under a lower-risk assumption, while it actually supports account modification and credential persistence.
The behavior rules explicitly claim the skill is read/search oriented, yet the documented commands include write operations like like/unlike and auth-set/auth-clear. This internal contradiction weakens operator trust and can cause unsafe automation decisions, especially where read-only skills are granted more permissive default handling.
The file’s natural-language request mapping only provides Russian trigger examples for invoking commands. This can amount to a language/locale policy violation because it implies a specific language expectation without stating that other languages are supported or that Russian is optional.
The skill metadata describes inspection and search capabilities, but the implementation also exposes state-changing operations that like and unlike tracks on the user's Yandex Music account. This mismatch can mislead users or calling agents into granting a token for read-oriented use while unintentionally enabling account modification, creating an authorization and consent boundary violation.
No suspicious patterns detected.