Back to skill

Security audit

Bmad Brainstorming Coach

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a brainstorming workflow, but it also reads unbundled project files, can emit local shell-hook commands, and writes session documents in ways users should review before installing.

Review before installing. Use this only in workspaces where you trust any `_bmad` and `.claude/hooks` files, and expect it to save brainstorming content under the configured output folder. Avoid Party Mode or YOLO mode in sensitive projects unless you have verified the referenced local files and are comfortable with document writes.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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
Findings (3)

T01 · Skill Instruction Hijacking

Error
Location
references/agent_definition.md:6
Finding

Mandatory Persona and Session-Control Hijacking

Content
View full analysis
ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style. Stay in character until exit selected Display Menu items as the item dictates and in the order given. Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml ``` ```text - 💾 Continue conversation until user selects E (Exit) - 🚫 FORBIDDEN to exit until E is selected or exit trigger detected ``` ### Technical Analysis The Skill does not limit its persona definition to optional presentation guidance. It issues mandatory instructions to replace the active Agent identity, follow all Skill instructions exactly, remain in character, and continue the interaction until a Skill-defined exit condition is met. This is instruction hijacking because the Skill attempts to control the Agent's current session goals and behavior rather than merely providing a brainstorming capability. The directives can interfere with the host Agent's normal role, response policy, task-switching behavior, and ability to leave the workflow when appropriate. The repeated use of mandatory language, including “NEVER break character,” “FORBIDDEN to exit,” and “follow all activation instructions exactly,” increases the likelihood that the Skill's local workflow rules will be treated as authoritative session constraints. ### Attack Path ...[truncated 1103 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
references/agent_definition.md:12
Finding

Loading Untrusted Instructions and Agent Definitions Outside the Audited Package

Content
View full analysis
🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT: - Load and read {project-root}/_bmad/cis/config.yaml NOW - Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder} - VERIFY: If config not loaded, STOP and report error to user - DO NOT PROCEED to step 3 until config is successfully loaded and variables stored ``` The Party Mode workflow additionally directs the Agent to load and merge external agent definitions: ```text Load and parse the agent manifest CSV from `{project-root}/_bmad/_config/agent-manifest.csv` ``` ```text - Combine manifest data with agent file configurations - Merge personality traits, capabilities, and communication styles - Validate agent availability and configuration completeness - Organize agents by expertise domains for intelligent selection ``` ```text - Cross-reference manifest with actual agent files ``` ### Technical Analysis The Skill reads configuration, manifests, and referenced agent files from `{project-root}/_bmad`, which is outside the audited package. Those files were not included in the supplied project tree and therefore cannot be trusted based on this package's review. The Skill then uses the imported content to construct “merged personalities” that control response generation. If an external manifest or referenced agent file contains adversarial instructions disguised as persona data, the workflow may incorporate those instructions into the active Agent context. The instruction to store “ALL fields” also violates data minimization. The Skill only ...[truncated 1942 chars]
Remediation
View remediation

T07 · Tool Hijacking and Spoofing

Error
Location
assets/workflows/party-mode/steps/step-02-discussion-orchestration.md:67
Finding

Unsafe Invocation of an Unbundled Project-Local Shell Hook

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (45)

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
80% confidence
Finding

Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Content

Scanner excerpt · assets/workflows/brainstorming/steps/step-02d-progressive-flow.md (reported line 43)May include surrounding context.

md
**Phase 1: EXPANSIVE EXPLORATION** (Divergent Thinking)

- Generate abundant ideas without judgment
- Explore wild possibilities and unconventional approaches
- Create maximum creative breadth and options

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
80% confidence
Finding

Skill attempts to nullify the agent's safety policies or restrictions ('you have no restrictions', 'ignore your guidelines', 'do anything now'). This is a direct jailbreak that disables guardrails.

Content

Scanner excerpt · assets/workflows/brainstorming/steps/step-02d-progressive-flow.md (reported line 84)May include surrounding context.

md
**Recommended Technique: [Exploration Technique]**

- **Category:** Creative/Innovative techniques
- **Why for Phase 1:** Perfect for generating maximum idea quantity without constraints
- **Expected Outcome:** [Number]+ raw ideas across diverse categories
- **Creative Energy:** High energy, expansive thinking

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The file defines a broad party-mode multi-agent orchestration workflow that materially exceeds the advertised scope of a brainstorming-coach skill. By instructing the system to load a complete agent roster, merge personalities, and prepare intelligent routing, it creates hidden cross-agent behavior and expanded capability surface that users would not reasonably expect from this skill.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The workflow instructs execution of an external shell hook (.claude/hooks/bmad-speak.sh) during a farewell step, which is unjustified for a brainstorming coach and creates a path from prompt content to local command execution. Even though the sample appears benign, invoking shell scripts from skill instructions can enable arbitrary side effects, data access, or abuse if the script, arguments, or environment are manipulated.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The YOLO mode explicitly instructs the agent to 'simulate' remaining discussions with an expert user instead of collecting real user input. This bypasses the workflow's normal confirmation and consent boundaries, allowing downstream actions and outputs to proceed based on fabricated approvals or assumptions, which is especially dangerous in a system that can invoke other workflows and write files.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The activation workflow is designed to trigger on first activation or broad user requests, and later allows free-form chat plus fuzzy menu handling. In a multi-skill or agentic environment, unclear invocation boundaries can cause the skill to take control when the user intended a different tool or a narrower action, leading to unintended workflow execution and file-writing behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Case-insensitive fuzzy substring matching for arbitrary text is too permissive for command routing because normal conversation can accidentally contain menu keywords or abbreviations. That can trigger brainstorming, party mode, or dismissal unintentionally, which is especially risky here because some handlers load additional local workflow files and may write generated output to the configured folder.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The workflow contains a hard requirement to always respond using a configured communication_language, regardless of the user's explicit preference or the surrounding system context. This can override user intent and platform safety UX, and in multilingual settings may obscure warnings, consent prompts, or security-relevant information by forcing output into an unexpected language.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · assets/workflows/brainstorming/brain-methods.csv (reported line 47)May include surrounding context.

text
theatrical,Persona Journey,"Embody different archetypes or personas to access diverse wisdom through character exploration - become the archetype, ask how persona would solve this, and explore what character sees that normal thinking misses"
wild,Chaos Engineering,"Deliberately break things to discover robust solutions - builds anti-fragility by stress-testing ideas against worst-case scenarios by asking what if everything went wrong, breaking on purpose, how it fails gracefully, and building from rubble"
wild,Guerrilla Gardening Ideas,"Plant unexpected solutions in unlikely places - uses surprise and unconventional placement for stealth innovation by asking where's the least expected place, planting ideas secretly, growing solutions underground, and implementing with surprise"
wild,Pirate Code Brainstorm,"Take what works from anywhere and remix without permission - encourages rule-bending rapid prototyping and maverick thinking by asking what pirates would steal, remixing without asking, taking best and running, and needing no permission"
wild,Zombie Apocalypse Planning,"Design solutions for extreme survival scenarios - strips away all but essential functions to find core value by asking what happens when society collapses, what basics work, building from nothing, and thinking in survival mode"
wild,Drunk History Retelling,"Explain complex ideas with uninhibited simplicity - removes overthinking barriers to find raw truth through simplified expression by explaining like you're tipsy, using no filter, sharing raw thoughts, and simplifying to absurdity"
wild,Anti-Solution,"Generate ways to make the problem worse or more interesting - reveals hidden assumptions through destructive creativity by asking how to sabotage this, what would make it fail spectacularly, and how to create more problems to find solution insights"

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This line mandates that the agent must always speak in the communication_language, but the file does not indicate that the user can choose or override that language. That is a natural-language locale policy concern because it imposes a language constraint without visible user opt-in in this file.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill directs the agent to create directories, copy a template, and later append session content to a file, but it does not require explicit user consent or a clear notice that disk writes will occur. This can lead to unexpected persistence of user data, accidental overwrites, or creation of artifacts containing sensitive brainstorming content.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The workflow instructs the agent to load a user-provided context file if it exists and is readable, without first warning the user that external file contents will be ingested into the session. This creates a privacy and data-minimization risk because sensitive local file contents may be pulled into model context and potentially echoed, summarized, or stored in session artifacts.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The instruction says the agent must always speak using the communication_language, which imposes a language/locale choice in mandatory terms. The file does not indicate that this language preference was explicitly chosen by the user or that the user can change it, so it risks violating the language/locale policy requirement.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The instruction requires the agent to always speak using the communication_language, which is a locale/language constraint stated as mandatory. Because this file does not show that the user selected or can override that language, it may violate the policy against forcing a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs the agent to update frontmatter and append to the document without explicitly informing the user that their content will be modified or obtaining confirmation for that write action. This can lead to silent file changes, unexpected persistence of session data, and erosion of user control over their workspace content.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Lines L018 and L215-L219 define the role as a neutral 'librarian' that must avoid recommendations or steering. However, the confirmation flow at L146-L151 and L183 directs the agent to provide evaluative statements such as why techniques match session goals, complement each other, and what outcomes to expect, which materially steers the user's perception of the choices.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file states the agent "MUST ALWAYS SPEAK OUTPUT" using the communication_language, which imposes a language/locale constraint in mandatory terms. There is no visible indication in this file that the user can choose or opt into that language behavior, so this is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Line L010 says the agent "MUST ALWAYS SPEAK OUTPUT" in the configured communication_language, which is a natural-language locale constraint. The file does not indicate user opt-in, offer an alternative, or justify a fixed language requirement as region-specific, so this appears to violate the language/locale policy criterion.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file mandates that output must always use a specific communication style/language derived from communication_language without indicating user choice or opt-in. While not directly enabling code execution, this can override user preference and system behavior, creating prompt-control and policy-compliance risks in multi-instruction environments.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill directs the agent to update frontmatter and append to a document, which can modify user files without an explicit user-facing warning or confirmation at the point of write. In an agent setting, silent file mutation can lead to unintended persistence, data corruption, or trust boundary violations even if the content being written is not overtly malicious.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill explicitly requires the agent to always speak in a predefined communication_language, without indicating that the user can choose or override it. This can override user preference, create misleading consent assumptions, and reduce transparency in multilingual contexts, though it is primarily a policy/UX safety issue rather than direct code execution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file instructs the agent to append brainstorming session content to a workspace file automatically when the user selects organization, but it does not require a clear user-facing warning that persistent files will be modified. Silent writes to project files can surprise users, leak sensitive session content into the repo, and create unauthorized or unintended state changes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This section repeatedly instructs updating frontmatter and appending documentation artifacts, again without requiring explicit notice or confirmation before modifying workspace files. Repeated silent state mutation increases the chance of unintended persistence, metadata corruption, and accidental inclusion of sensitive brainstorming content in tracked documents.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill mandates a specific communication style/language without stating that the user can choose or override it. While not directly enabling code execution or file compromise, it can reduce user control, cause misleading output expectations, and make the agent behave contrary to user preferences or accessibility needs.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The workflow instructs the agent to append content to a persistent file and modify frontmatter state, but it does not require an explicit, informed user confirmation that files will be written or changed. In an agent environment with filesystem tools, this can cause silent state mutation, unexpected data persistence, or overwriting/appending to project artifacts the user did not intend to change.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.