Back to skill

Security audit

summon

Security checks for vulnerabilities and agentic risk

Overview

This autonomous development skill is disclosed in parts, but it can keep restarting itself, change repository and GitHub state, and act on unclear tasks without enough user approval.

Review before installing. Use this only in an isolated repository with trusted credentials, disable auto_merge and durable cron behavior unless explicitly needed, prefer bounded runs, and avoid feeding secrets or untrusted issue comments into the workflow.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
Findings (3)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:69
Finding

Foreground Session Takeover with Indefinite Execution and Output Suppression

Content
View full analysis
", run_in_background: false // Required ) ``` ```markdown - **Default (no `--bounded` flag)**: set `"indefinite": true` in the manifest. The egregore will scan for new work after completing all items and run until dismissed. - **With `--bounded` flag**: set `"mode": "bounded"` in the manifest. The egregore stops after all items are completed or failed. If the manifest already exists and has `"mode": "bounded"` but the user did NOT pass `--bounded`, update the manifest to `"indefinite": true` before launching. After launching, do NOT produce any summary, status table, or "what's happening" output. The orchestrator IS the session now. Let it run. ``` ### Technical Analysis The Skill requires a foreground launch that blocks the current session, changes bounded manifests to indefinite operation by default, and suppresses normal status or summary output after launch. Together, these instructions alter the agent's interaction model and current-session behavior rather than merely delegating a bounded development task. The output-suppression instruction reduces observability while the orchestrator may invoke specialist skills, modify repository files, create branches, prepare pull requests, and potentially merge changes. Replacing an explicitly bounded configuration with indefinite operation also exceeds the minimum privilege and duration necessary to process a finite backlog. ### Attack Path 1. A user invokes or loads the `summon` Skill for development wo ...[truncated 1213 chars]
Remediation
View remediation

T06 · System Persistence

Error
Location
SKILL.md:241
Finding

Recurring Self-Resumption Task Enables Persistent Autonomous Execution

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
SKILL.md:299
Finding

Ambiguous Requirements Are Executed Without Human Authorization

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (15)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The trigger list includes broad terms such as 'autonomous', 'pipeline', 'orchestrator', and 'mission', which can match ordinary discussion and unintentionally invoke a powerful autonomous skill. Because this skill can modify files, execute commands, and schedule persistence, accidental activation materially raises risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill directs autonomous reading and writing of manifest state, invocation of other skills, and command execution, but its top-level description does not clearly warn users about these system-impacting actions. Insufficient upfront disclosure makes unsafe invocation more likely, especially given the autonomous loop and external side effects.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill claims it only manages state transitions, retries, and budget guards, but later expands into inline intake processing, GitHub actions, notifications, and cron scheduling. This mismatch undermines operator understanding and reviewability, making it easier for impactful behaviors to be approved under an incomplete mental model.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs the agent to create a recurring cron job that periodically reports status and can automatically reinvoke the orchestrator. That turns a single autonomous run into durable persistence and self-reanimation behavior, which increases the chance of unintended long-lived execution, repeated side effects, and loss of operator control.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The module explicitly instructs the orchestrator to 'never block' and to resolve ambiguity autonomously, which can cause the system to act on unclear requirements without user confirmation. In an autonomous orchestration context, this increases the chance of unintended code changes, scope expansion, or unsafe workflow actions being taken under incorrect assumptions, with only after-the-fact logging as a safeguard.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The module is presented as a parsing/intake component, but it also performs state-changing actions such as git branch creation/checkout and execution of a local Python script. That mismatch increases the chance operators will permit or invoke the skill under the assumption it is non-invasive, while it can alter the repository and run code based on parsed content.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

Storing raw prompt text, even truncated, in persistent work-item metadata can capture secrets, tokens, credentials, internal URLs, or personal data that users include in prompts. That data may then propagate into logs, branch names, manifests, telemetry, or downstream automation beyond the user's intent.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

Treating all GitHub issue comments as requirements causes untrusted user-supplied content to flow into downstream planning and execution. Comments may contain sensitive data, prompt-injection content, or irrelevant instructions, which is especially risky in an autonomous orchestrator that 'never waits for human input' and may act on that material automatically.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

Automatically creating or switching git branches changes local repository state without notice or confirmation. In an autonomous pipeline, this can disrupt a user's working tree, interfere with existing branches, or cause subsequent automated steps to run in an unexpected context.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The intake module invokes an external local Python script and passes work-item title and body content into command arguments. In an autonomous orchestrator context, this expands a nominally parsing stage into arbitrary local code execution, creating risk from unsafe script behavior, argument handling bugs, or unexpected execution on untrusted content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The module directs automatic execution of a local Python script using content derived from discoveries, without warning or approval. Because the skill is autonomous and processes potentially adversarial issue/prompt content, this creates a dangerous path from untrusted input into local code execution and persistent side effects.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The module explicitly defines an automated merge step and states it will merge PRs when auto_merge: true, but it does not include a clear safety warning, approval gate, or repository-state risk disclosure. In an autonomous orchestrator skill, this is dangerous because it normalizes code landing in the target branch without an explicit human confirmation step, increasing the chance of unintended, unsafe, or malicious changes being merged automatically.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The stated purpose is autonomous orchestration of manifest work items through the development lifecycle. While delegating to other skills is expected, directly fetching issues from GitHub and merging pull requests introduces direct external repository operations that are not explicitly declared in the manifest text and go beyond pure state orchestration.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file explicitly states that budget state is stored in .egregore/budget.json, and later instructs writing .egregore/manifest.json and updating .egregore/budget.json. The description does not include any warning that the skill will create or modify files in the user's workspace, which is a user-data-affecting behavior covered by the markdown variant of missing warnings.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The file instructs the system to send a notification via a configured channel containing rate-limit details and expected resume time. Because this involves transmitting operational data externally, the skill description should disclose that notifications may be sent through an external channel, but no such warning is present.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.