T09 · Insecure Skill Coding Practices
Error
- Location
- SKILL.md:15
- Finding
- Hardcoded Plaintext Website Credentials<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:15` **Vulnerability Type**: Hardcoded credentials and plaintext sensitive data **Risk Level**: High ### Vulnerable Code ```markdown - 账号: `mick` / 密码: `vee` ``` ### Technical Analysis The Skill embeds a reusable username and password directly in its documentation. Any person, automated Agent, repository scanner, package recipient, or log consumer with access to the Skill can recover these credentials without authorization checks. The surrounding instructions identify the login page and authenticated administration endpoints. They also document the parameters required to create and modify vocabulary records. Consequently, the exposed secret is directly actionable rather than being an isolated informational disclosure. Because credentials committed to a package may remain available through copies, caches, logs, and version history, removing this line alone would not invalidate previously disclosed copies. The password must be treated as compromised and rotated. ### Attack Path 1. Obtain or inspect a copy of the Skill package. 2. Read the plaintext username and password from `SKILL.md`. 3. authenticate to `https://k241.wooomooo.com/login.php` using the exposed credentials. 4. Access authenticated application functionality, including `/admin_words.php`. 5. Enumerate records using the documented administration and `get_word.php?id={id}` endpoints. 6. Upload vocabulary through `/upload.php` or submit a documented update request to `/admin_words.php`. 7. Modify records available to the compromised account. ### Impact Assessment An attacker can assume the identity of the exposed application account and exercise every privilege granted to that account. Based on the documented workflow, this includes uploading vocabulary, querying word records, and modifying existing records through the administration interface. The likely scope is the K241 vocabulary application and data accessible to the `mick` ...[truncated 175 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Immediately rotate the exposed password and invalidate all active sessions associated with the account. 2. Remove the credentials from `SKILL.md` and from any other tracked files, generated artifacts, logs, package releases, and accessible repository history. 3. Supply credentials at runtime through an approved secret manager or protected environment variables rather than embedding them in Skill instructions. 4. Create separate accounts for individual users or automation identities instead of sharing one reusable account. 5. Grant the automation account only the minimum permissions required to upload vocabulary. Separate upload and administrative-update privileges where supported. 6. Add secret scanning to pre-commit hooks and continuous integration so future plaintext credentials are rejected before distribution. 7. Review authentication and administration logs for use of the exposed account, especially unexpected logins, uploads, and record updates. 8. Enable rate limiting, session expiration, secure cookie controls, and multi-factor authentication where the application supports them. ]]>
