T08 · Insecure Dependencies
- Location
scripts/account-rotator.js:31- Finding
Unpinned External Dependency Executes with API Credentials and the Full Process Environment
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears purpose-built for account rotation, but it runs an external dependency with API credentials and the full process environment, which deserves manual review before installation.
Install only if you trust both this skill and the separately installed yixiaoer-skill package. Use a limited shell environment without unrelated secrets, review or pin the dependency where possible, and treat the local state file as account metadata that may need manual cleanup after access changes.
scripts/account-rotator.js:31Unpinned External Dependency Executes with API Credentials and the Full Process Environment
scripts/account-rotator.js:144Synchronization Retains Accounts from Platforms No Longer Present in the Authorized API Response
Referenced artifact was not completely inspected
node scripts/account-rotator.js sync
Referenced artifact was not completely inspected
node scripts/account-rotator.js sync
Referenced artifact was not completely inspected
node scripts/account-rotator.js sync
Referenced artifact was not completely inspected
node scripts/account-rotator.js sync
Referenced artifact was not completely inspected
node scripts/account-rotator.js sync
Referenced artifact was not completely inspected
node scripts/account-rotator.js sync
Referenced artifact was not completely inspected
node scripts/account-rotator.js sync
The natural-language content and usage guidance are presented only in Chinese, which effectively imposes a language requirement on users without opt-in or explanation. The policy specifically calls for flagging skills that force a specific language or locale without user choice or a documented justification.
The skill instructs users to provide sensitive credentials via environment variables and includes executable command examples, but it declares no explicit tool scope or permissions metadata. In an agent ecosystem, this can cause the skill to access environment-sourced secrets without clear sandboxing or least-privilege constraints, increasing the chance of unintended secret exposure or misuse.
The skill invokes an external script from a hard-coded path using child_process, which expands trust to code outside this skill and creates a supply-chain boundary. If that external api.ts is modified, replaced, or more privileged than expected, this rotator silently inherits its behavior and can perform unintended actions with the provided API key.
The manifest describes an account rotation manager that maintains per-platform indices and persistent state for publishing rotation. In addition to local rotation logic, the code directly consumes sensitive environment variables for API authentication and member scoping, which is a credential-handling capability not stated in the manifest and not inherent to a pure rotator utility.
The skill is described as a local account rotation manager, but it also orchestrates live synchronization through another skill's API client. This hidden capability broadens the operational scope and trust model, making review and deployment decisions harder and increasing the chance that users grant broader access than they intended.
This markdown file advertises state persistence and integration into a publishing flow, which can affect user data and operational behavior. The description does not include any warning that the skill stores rotation state or may influence which account is used for automated publishing.
The documentation tells users to export an API key and member ID, but it does not warn that these values are sensitive credentials that should be stored securely and not committed or shared. For markdown files, omission of privacy or system-integrity warnings around sensitive data handling is in scope.
The manifest description is entirely in Chinese and presents the skill in a single language without indicating that users may choose another language or locale. This can violate language/locale policy expectations when a skill is distributed broadly without documented opt-in or region-specific justification.
The file content, headings, and instructions are all presented in Chinese, and there is no indication that the skill is region-specific or that users may choose another language. Under the policy criteria, forcing a specific language without opt-in can be a natural-language policy violation.
The call to toLocaleString('zh-CN') forces Chinese locale formatting in a user-visible status message. Under the policy, locale-specific behavior should either be user-selectable or clearly justified as region-specific; this file does not provide either.
Detected: suspicious.dangerous_exec