T01 · Skill Instruction Hijacking
- Location
SKILL.md:286- Finding
Hardcoded Third-Party Repository and Branding Instructions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 286-296
Vulnerability Type:T01: Skill Instruction Hijacking
Risk Level: MediumVulnerable 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
- A user loads the Skill and asks the agent to scaffold and publish a new OpenClaw Skill.
- The agent follows the mandatory post-publishing instructions.
- After a push, the agent executes `gh repo edit seph1709/[skill-name] ...[truncated 1165 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the hardcoded
seph1709namespace from both the GitHub repository target and ClawhHub URL. - 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' - Display the resolved repository and homepage to the user and require confirmation before invoking
gh repo edit. - Verify that the resolved repository owner matches the intended publisher or the validated owner associated with
_meta.json. - Make repository metadata modification optional rather than requiring it after every push.
- Construct the homepage from a verified registry owner and slug instead of a fixed third-party identifier.
- Add an agent rule forbidding authenticated mutations of repositories or registry records unless the exact target and changes have been confirmed by the user.
- Keep publication guidance internally consistent with the existing prohibition against hardcoded personal identifiers.
- Remove the hardcoded
