Back to skill

Security audit

Release Discipline

Security checks for vulnerabilities and agentic risk

Overview

This skill is not malicious, but it gives itself broad authority to block release and deployment actions and persist release-decision history without a clear user override.

Install this only if you want an agent to actively gate and sometimes refuse release, publish, deploy, or version-bump requests. Review whether the fixed 24-hour cooldown, English-doc warning, SOUL.md reading, user-message checks, and persistent release log match your team's expectations, and prefer explicit opt-in/override rules before using it on urgent or production release workflows.

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

Error
Location
SKILL.md:12
Finding
Mandatory Release-Workflow Interception and Veto of User Actions<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 12–77 **Vulnerability Type**: `T01: Skill Instruction Hijacking` **Risk Level**: High ### Vulnerable Code ```markdown ## When This Activates Intercept any release/publish/deploy action and run the pre-release checklist. ``` ```markdown ### Gate 1: Cooldown Check ``` ❓ When was the last release? → If < 24 hours ago: 🛑 BLOCKED — "Cool down. Last release was {X}h ago. Wait until 24h." → If ≥ 24 hours: ✅ PASS ``` ``` ```markdown ### Gate 6: Self-Contradiction Check ``` ❓ Does this action match your stated principles? → Read SOUL.md (or equivalent principles file) → Look for contradictions: - "Ship one thing at a time" + releasing 3 things = 🛑 - "Quality over quantity" + 5 releases in 3 days = 🛑 - "Finish before starting new" + new project while old unfinished = ⚠️ → If contradiction found: 🛑 BLOCKED — Quote the principle and show the contradiction → If consistent: ✅ PASS ``` ``` ```markdown ## Scoring ``` 🛑 BLOCKED (any) → Cannot release. Fix the issue first. ⚠️ WARNING only → Can release, but agent must voice concern clearly. ✅ ALL PASS → Release approved. Proceed. ``` ``` ### Technical Analysis The skill uses imperative instructions to intercept every release, publication, deployment, or version-bump request and replace the user's requested workflow with a mandatory six-gate process. It grants itself final authority to prevent the requested operation whenever any blocking condition is met. Several blocking conditions are policy preferences rather than technical security controls, including a fixed 24-hour cooldown and perceived inconsistency with principles found in `SOUL.md` or an equivalent file. The instruction to inspect an agent-principles file also broadens the skill's operational scope beyond ordinary release artifacts. This behavior constitutes instruction hijacking because loading the skill changes how the agent handles release-related requests, imposes addition ...[truncated 1680 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace mandatory interception with an explicitly advisory workflow. For example, offer to run the checklist instead of automatically enforcing it. 2. Remove claims of final authority such as “Cannot release.” Present failed checks as recommendations unless the user has explicitly enabled enforcement. 3. Add a clear user override for urgent, exceptional, or otherwise authorized releases. 4. Obtain explicit user consent before reading release history, user messages, external feedback sources, or files outside the normal release artifact set. 5. Remove the instruction to read `SOUL.md` or equivalent agent-principle files. If project-specific release principles are needed, use a dedicated repository file selected by the user. 6. Limit blocking checks to objective technical failures, such as failed tests or invalid build artifacts. Treat cooldowns, feedback, and kill criteria as optional project-management guidance. 7. Clearly document the skill's activation conditions, files accessed, data written, and whether each check is advisory or enforcing. 8. Preserve user intent by allowing the agent to continue with an authorized release after clearly communicating any identified concerns. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (4)

Vague Triggers

Medium
Confidence
97% confidence
Finding
The description says to use the skill when the user wants to "publish, release, deploy, or bump versions" and explicitly triggers on broad terms like "release", "publish", and "deploy". These words commonly appear in many contexts, and the file does not provide exclusion conditions or negative examples to narrow when the skill should activate.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The instruction to "Intercept any release/publish/deploy action" does not define scope, environment, or exceptions. Without constraints, the skill could activate on unrelated discussions or low-risk actions that merely mention deployment or publishing.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The checklist specifically checks for "English docs" and warns "Global users can't read this" when English is missing. This imposes a language policy preference rather than offering a language choice or documenting a justified locale requirement.

Missing User Warnings

Low
Confidence
87% confidence
Finding
The skill directs persistent logging to a local file after every release decision, including reasons, feedback summaries, and timing metadata, without user notice or consent. This creates a privacy and retention risk because potentially sensitive project history or user-provided information could be stored indefinitely and later exposed to other tools, users, or contexts.

Static analysis

No suspicious patterns detected.