T01 · Skill Instruction Hijacking
- Location
templates/messageTemplate.txt:10- Finding
Untrusted GitHub content is treated as privileged agent instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed GitHub automation pipeline, but it gives untrusted webhook content enough control to change, push, and potentially merge repository code without strong safeguards.
Only install this in a tightly controlled environment after adding safeguards: trusted repository and actor allowlists, sandboxed disposable runners, scoped short-lived GitHub credentials, safe argument handling instead of interpolated shell commands, pinned dependencies, mandatory CI, and human approval before pushing or merging.
templates/messageTemplate.txt:10Untrusted GitHub content is treated as privileged agent instructions
templates/messageTemplate.txt:50Issue-title interpolation permits shell command injection
templates/messageTemplate.txt:29Unpinned npx package execution creates a supply-chain execution path
templates/messageTemplate.txt:43Repository-defined tests are executed without an isolation boundary
templates/messageTemplate.txt:61Weak authorization and CI conditions permit unsafe automatic merging
The template directs the agent to clone repositories, implement changes, commit, push, create PRs, and continue automation, but it does not present a clear user-facing warning or consent boundary for repository-modifying actions. This is dangerous because issue bodies and related GitHub content are untrusted input, yet they can drive real code changes in a live repository pipeline.
The template authorizes automatic merge when heuristic conditions pass, including cases where no CI is configured, and does so without an explicit safety warning or mandatory human approval gate. In this context, auto-merge materially increases the blast radius of any prompt-injection, logic error, weak review, or compromised dependency by allowing untrusted-triggered changes to land in the default branch with minimal friction.
The skill advertises a fully automated Issue-to-merge pipeline without prominently warning users that untrusted Issue content can trigger code changes, PR creation, auto-merge, and Issue closure. In this context, the absence of a strong warning materially increases the chance that users enable or invoke the workflow without understanding that externally supplied text can directly drive repository modifications.
The documented hook configuration sets allowUnsafeExternalContent to true for GitHub webhook payloads, meaning externally supplied Issue, PR, comment, and check data can be injected into the agent's context. Because this same skill then implements code, pushes branches, creates PRs, and auto-merges, prompt injection or malicious repository/user content could steer the agent into unsafe code changes or workflow abuse.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
Title: [auto] Generate report with weather data
Body:
Read skills/weather/SKILL.md for API usage.
## Requirements
...
The manifest describes a development automation pipeline triggered by GitHub Issues, handling implementation, testing, PR creation, review, and merge. This template instead defines a content-creation workflow for articles/blog posts, including SEO, tone, platform, and output file under content/, which is a materially different behavior domain than code-change automation.
The template restricts language to "<ja / en>" only, which imposes a locale/language constraint in natural language without stating that the user can choose other languages or that the limitation is justified. This can violate language-choice policy when the skill is used in broader contexts.
The early-exit rule allows full processing for issue_comment with actionable content but does not define strict criteria for what is actionable. In this skill, ambiguous triggering is dangerous because comment-driven execution can lead the agent to implement code changes or respond to PR feedback based on loosely interpreted untrusted text from GitHub comments.
The template executes npx tsx OMEGA_BRIDGE_PATH without pinning a specific package version or otherwise constraining resolution, which creates a supply-chain risk if package resolution is influenced by the environment or a compromised dependency source. In this skill, that risk is amplified because the command is part of an automated repo-modifying pipeline that can clone code, commit changes, create PRs, and participate in auto-merge flows.
The file title and core descriptive text switch into Japanese for the main user-facing documentation, but there is no indication that the skill is intentionally Japan-specific or that users may choose another language. This can violate a language/locale policy when a specific language is imposed without opt-in.
The description says this template is for "article/content creation tasks," which is broad and does not define clear activation boundaries or exclusions. In a manifest-style file, this kind of generic scope can overlap with many common writing requests and may cause unintended invocation.