Back to skill

Security audit

worktrunk

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent Git worktree helper, but it also tells agents to post final outcomes to an issue or task tracker without clear user opt-in.

Install only if you are comfortable with a skill that can guide agents through Git worktree creation, merging, cleanup, hooks, and agent launch commands. Before using it, treat the issue-tracker delivery section as opt-in: do not let an agent post tracker comments unless you have chosen the destination and reviewed the exact content. Also verify worktree status and branch state before merge or remove commands, because cleanup may delete local worktrees or branches.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:175
Finding

Out-of-Scope External Issue-Tracker Publication Instructions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 175–192
Vulnerability Type: Skill instruction hijacking through unauthorized scope expansion
Risk Level: Medium

Vulnerable Snippet

markdown
## Delivery Surface — External Systems Are Evidence

GitHub PRs, CI runs, and dashboards are **supporting evidence**, not the delivery
surface. The conclusion has to land where the work is tracked.

- **Record the outcome once, completely** — one issue comment carrying status,
  branch/commit/PR, what you validated, the blocker, and the next owner.
- **Verify terminal state, not intermediate state.** A green CI run or an open,
  review-ready PR is not "shipped". Confirm merged / released / deployed, then
  record *that*.
- **Keep public surfaces public-safe.** PR titles, bodies, and commit messages
  carry technical content only — no internal issue IDs, routing history,
  reviewer handoffs, local absolute paths, or internal hostnames.
- **Collect results in the foreground.** A queued or pending state is a handoff,
  not a completion; never end a turn "standing by" for background work.

Concretely: the delivery surface is the team's issue or task tracker — the
issue comment plus its metadata. A PR comment alone delivers nothing.

Technical Analysis

The Skill is described as a Git worktree manager, with expected operations covering worktree creation, switching, merging, removal, and related development workflows. The appended instructions independently require the agent to deliver conclusions through a team issue or task tracker.

This expands the Skill's authority from local Git worktree management to an external write operation. The instructions do not require the user to request publication, identify the intended tracker, approve the destination issue, or confirm the exact content before submission. They also require the comment to include status, branch, commit, pull-request, validation, blocker, and ownership information.

The attack ...[truncated 1724 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove the mandatory issue-tracker delivery instructions from this worktree-management Skill.
  2. If tracker reporting is an intended optional feature, disclose it in the Skill description and make it explicitly opt-in.
  3. Before any external write, require confirmation of:
    • The destination service and repository or workspace.
    • The exact issue or task identifier.
    • The complete comment content.
    • The metadata fields that may be disclosed.
  4. Default to returning results in the current conversation rather than publishing them externally.
  5. Separate local worktree operations from external reporting so that invoking one capability cannot implicitly authorize the other.
  6. Apply a metadata allowlist and exclude internal identifiers, local paths, hostnames, routing details, and ownership information unless the user explicitly approves their disclosure.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill documents vx wt merge as performing a squash merge and then deleting the worktree and branch, but it does not clearly warn that these actions are destructive or may permanently remove local state. In an AI-agent workflow context, users may copy commands directly, increasing the chance of accidental data loss or unintended branch deletion.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The wt remove and wt remove --with-branch commands are presented as routine cleanup without a prominent caution that they can remove a worktree and optionally delete the associated branch. In a tool intended for parallel agent use, this can lead to accidental destruction of in-progress work if operators or agents run cleanup commands without understanding the deletion scope.

Content

No source excerpt is available for this finding.