Back to skill

Security audit

K241单词上传

Security checks for vulnerabilities and agentic risk

Overview

The skill is aimed at uploading vocabulary to a class website, but it publishes a reusable website password and enables authenticated remote changes with loose triggering and little user control.

Review this skill before installing. Treat the listed K241 password as compromised, rotate it, and replace embedded credentials with per-user or secret-managed authentication. Require explicit confirmation before any upload or update, and narrow triggers to commands that clearly mention changing the K241 website.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

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. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Missing User Warnings

High
Confidence
98% confidence
Finding
The skill exposes a live shared username and password directly in the documentation. Hardcoded shared credentials enable anyone with access to the skill to authenticate to the remote site, undermining access control and creating a significant risk of unauthorized uploads, edits, or abuse of the account.

Vague Triggers

Medium
Confidence
94% confidence
Finding
The trigger description includes broad everyday phrases like '添加单词到网站、背单词', which can cause the skill to activate in contexts where the user did not intend to modify the remote site. Because this skill performs authenticated write actions against a live website, accidental invocation can lead to unauthorized or unintended data changes.

Natural-Language Policy Violations

Medium
Confidence
78% confidence
Finding
The skill description and operational content are entirely in Chinese and assume Chinese inputs such as 翻译 and 拼音, without indicating that language choice is optional or that the skill is intentionally limited to Chinese-speaking users. This can violate language/locale policy when a skill implicitly forces a specific language without opt-in or explicit justification.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill describes GET and POST operations that upload and update words on a remote site but does not clearly warn that these are state-changing actions. Users or downstream agents may treat the skill as informational rather than destructive/modifying, increasing the chance of unintended writes to production data.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
This markdown file presents all headings and content in Chinese, which may impose a specific language on users without opt-in. Under the policy rule, forcing a specific language without user choice can be a natural-language policy violation unless the locale constraint is clearly documented and justified.

Static analysis

No suspicious patterns detected.