T09 · Insecure Skill Coding Practices
- Location
SKILL.md:132- Finding
Linear API Credential Forwarded to a Remote SSH Host
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a disclosed code-shipping automation tool, but it forwards credential-bearing configuration to remote SSH hosts and installs a powerful mutable CLI globally.
Review this carefully before installing. Use it only in repositories where automated branch creation, commits, pushes, PR updates, and Linear comments are acceptable. Prefer local or dry-run mode first, pin and verify the package version if possible, and do not configure remote SSH execution unless you trust the remote host with any provider and Linear credentials in the oneshot config.
SKILL.md:132Linear API Credential Forwarded to a Remote SSH Host
SKILL.md:23Unpinned Global Installation of a Privileged Third-Party Package
Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.
oneshot <repo> "<task>" --mode deep # skip classification and force deep mode
oneshot <repo> "<task>" --workflow ship # apply a workflow preset
oneshot <repo> "<task>" --deep-review # force exhaustive review
oneshot <repo> "<task>" --model gpt-5.5 # override configured plan/PR model
oneshot <repo> "<task>" --branch dev # target a different branch
oneshot <repo> "<task>" --base-path /srv/workspaces # override repo root for this run
oneshot <repo> "<task>" --worktree-root /tmp/agents # override temp worktree root
The top-level description and usage framing encourage activation for broadly defined coding requests, while the skill performs high-impact actions such as code changes, commits, pushes, PR creation, and optional remote execution. That combination can cause the skill to be invoked without sufficiently explicit user intent or confirmation, increasing the chance of unintended repository modification.
The skill description does not clearly warn users that the workflow can autonomously modify repositories, create branches, commit changes, push to remotes, and open or update PRs. Without a prominent warning, users may invoke the skill expecting advisory help rather than an execution pipeline with write effects.
The trigger phrase 'wants to delegate a coding task' is too ambiguous for a skill that can autonomously plan, edit code, run tooling, push commits, and open pull requests. In practice, many normal coding-assistance requests could match this condition and lead to over-broad or premature activation of a powerful automation workflow.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
oneshot eval --json # summarize outcomes
oneshot workflow list # inspect workflow presets
oneshot workflow show fix-ci --json # inspect one workflow preset
oneshot policy init # create .oneshot/policy.json
oneshot policy init --path ./repo # write policy in another directory
oneshot mcp serve # expose MCP tools over stdio
oneshot doctor # package, tool, SSH, and event health
The documentation states that remote SSH runs stream the active oneshot config to the server, including provider defaults, timeout settings, and configured Linear credentials, but it does not present this as a privacy/security warning. Users may not realize that sensitive configuration values or credential-bearing fields are transmitted to another host during execution.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
- Edit `prompts/plan.txt`, `execute.txt`, `review.txt`, `pr.txt` to change pipeline behavior
- Use `oneshot policy init` to add `.oneshot/policy.json` with protected paths, required checks, approval-sensitive keywords, and secret-pattern gates
- Use `oneshot mcp serve` when another agent should call oneshot through tools instead of shelling out ad hoc
- For dense specs, explainers, review maps, incident reports, design sheets, or one-off editors, oneshot can create a self-contained HTML artifact instead of a long markdown wall. Durable artifacts belong in `docs/artifacts/`; throwaway local artifacts belong in `/tmp/oneshot-html-artifacts/`.
## Tips
No suspicious patterns detected.