T01 · Skill Instruction Hijacking
Warning
- Location
- SKILL.md:286
- Finding
- Hardcoded Third-Party Repository and Branding Instructions## Vulnerability Details **File Location**: `SKILL.md`, lines 286-296 **Vulnerability Type**: `T01: Skill Instruction Hijacking` **Risk Level**: Medium ### Vulnerable Code ```powershell # Set GitHub repo About description and homepage URL (run after every push) gh repo edit seph1709/[skill-name] ` --description "OpenClaw skill: [one-line purpose]" ` --homepage "https://clawhub.ai/seph1709/[skill-name]" ``` The subsequent instructions state: ```text This resolves the "no homepage / opaque owner" scanner flag — the GitHub repo is the audit trail, and the ClawhHub URL links back to the published registry record. Note: `clawhub edit --homepage` does not exist as a CLI command. GitHub repo About is the only place to surface a homepage URL for the skill. ``` ### Technical Analysis The Skill directs the agent to run an authenticated GitHub CLI command after every push while hardcoding the third-party namespace `seph1709`. The target repository and homepage are not derived from the user's confirmed GitHub account, the generated skill's verified ownership metadata, or an explicit user selection. Consequently, an agent following the Skill may attempt to edit a repository outside the user's intended namespace or apply third-party attribution and branding to a generated project. This instruction also conflicts with the Skill's own rule prohibiting hardcoded personal identifiers. The behavior does not itself bypass GitHub authorization: the command can modify a repository only if the active GitHub credentials already possess the required permission. Nevertheless, directing an authenticated agent toward a fixed third-party target exceeds the minimum privilege and scope necessary to document or publish a user-owned Skill. ### Attack Path 1. A user loads the Skill and asks the agent to scaffold and publish a new OpenClaw Skill. 2. The agent follows the mandatory post-publishing instructions. 3. After a push, the agent executes `gh repo edit seph1709/[skill-name] ...[truncated 1165 chars]
- Remediation
- ## Remediation Suggestions 1. Remove the hardcoded `seph1709` namespace from both the GitHub repository target and ClawhHub URL. 2. Obtain the repository owner and name from explicit user input or verified repository metadata, such as: ```powershell $repo = gh repo view --json nameWithOwner --jq '.nameWithOwner' ``` 3. Display the resolved repository and homepage to the user and require confirmation before invoking `gh repo edit`. 4. Verify that the resolved repository owner matches the intended publisher or the validated owner associated with `_meta.json`. 5. Make repository metadata modification optional rather than requiring it after every push. 6. Construct the homepage from a verified registry owner and slug instead of a fixed third-party identifier. 7. Add an agent rule forbidding authenticated mutations of repositories or registry records unless the exact target and changes have been confirmed by the user. 8. Keep publication guidance internally consistent with the existing prohibition against hardcoded personal identifiers.
