Back to skill

Security audit

auto-research-proposal

Security checks for vulnerabilities and agentic risk

Overview

The skill is broadly aligned with a research-debate workflow, but it needs review because it auto-launches a local monitor with unsafe shell command construction and persistently records detailed discussion state.

Review before installing. Use it only in projects where persistent discussion logs and private persona memos are acceptable, avoid sensitive secrets in the war-room context, and do not let the agent auto-run the monitor command as written. If you use the monitor, run it manually with safely quoted paths in an isolated Python environment with pinned dependencies.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:65
Finding

Command Injection Through an Unquoted Project Path

Content
View full analysis
'"'"' && python skills/war-room/monitor.py --project "' # Linux xterm -title "War Room Monitor" -e "python skills/war-room/monitor.py --project " & ``` ### Technical Analysis The playbook instructs the agent to replace `` with an active project directory and then embed the resulting value directly into command text. The project path is not safely quoted or passed as a discrete process argument. On Linux, shell metacharacters contained in the substituted path may be interpreted by the shell involved in launching the terminal command. The macOS variant is additionally embedded inside AppleScript and shell command strings, creating multiple parsing contexts that require separate escaping. If an attacker can influence the active project path, a value containing characters such as command separators, substitutions, or quotes may alter the intended command and append arbitrary operating-system commands. Merely checking that the resulting path exists would not make shell-string interpolation safe. ### Attack Path 1. An attacker supplies, creates, or convinces the user to open a project under a directory name containing shell syntax. 2. The war-room skill follows its setup instructions and substitutes that path for ``. 3. The resulting monitor-launch command is submitted to `xterm`, AppleScript, or a shell without context-appropriate escaping. 4. The command interpreter treats part of the path as executable syntax rather than as a single path argument. 5. The injected command runs with the same operating-system privileges and environment access as the user running the agent. Exploitation requires influence over the selected project path and execution ...[truncated 518 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:74
Finding

Unpinned Third-Party Package Installation

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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill description presents a benign debate-orchestration workflow, but the instructions also include auxiliary behavior such as launching a live monitor, reading private memo/state files, and depending on other skills for logic that is not reflected in the top-level description. This mismatch can mislead users and reviewers about the real operational footprint, especially around private data access and side effects.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill instructs the agent to spawn a new terminal and execute shell commands using dynamically substituted paths. Even if intended for convenience, this creates an unnecessary command-execution side effect outside the core research-debate function and increases risk of unsafe command construction, environment abuse, or surprising process creation on the host.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill directs the agent to open a terminal and run local commands without first obtaining user consent. This is a risky side effect because it causes host interaction beyond normal content generation and may surprise the user or violate least-astonishment expectations.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · SKILL.md (reported line 91)May include surrounding context.

md
1. Read `skills/war-room/personas/agents.json`. Load the selected configuration's participant list and synthesiser index.
2. For each participant, read their persona file (e.g. `skills/war-room/personas/senior-professor.md`).
3. Read `skills/persistent-persona/SKILL.md` and `skills/memory-checkpoint/SKILL.md` — you will apply these every turn.
4. Check if `memory/war-room/discussion-log.md` exists.
   - If yes: load it — you are resuming a session. Read `memory/SUMMARY.md` for current phase and round.
   - If no: create `memory/war-room/discussion-log.md` with a header block (project name, configuration, timestamp).

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · SKILL.md (reported line 91)May include surrounding context.

md
1. Read `skills/war-room/personas/agents.json`. Load the selected configuration's participant list and synthesiser index.
2. For each participant, read their persona file (e.g. `skills/war-room/personas/senior-professor.md`).
3. Read `skills/persistent-persona/SKILL.md` and `skills/memory-checkpoint/SKILL.md` — you will apply these every turn.
4. Check if `memory/war-room/discussion-log.md` exists.
   - If yes: load it — you are resuming a session. Read `memory/SUMMARY.md` for current phase and round.
   - If no: create `memory/war-room/discussion-log.md` with a header block (project name, configuration, timestamp).

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill creates and appends detailed private persona memo files and discussion logs, potentially containing sensitive reasoning traces, without prominently warning the user. This can expose confidential project context, internal deliberations, or sensitive prompts to anyone with access to the workspace.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · SKILL.md (reported line 158)May include surrounding context.

md
### Phase 2 — Proposal

Read `skills/research-proposal/SKILL.md` now. The proposal has 6 sections.

Assign one section per round (or pair related sections). Run the same per-turn loop as Phase 1, but each subagent's task is:

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

Copying discussion logs and drafts into a results directory at session end introduces another data propagation step that users may not expect. While lower impact than process spawning, it can widen access to sensitive working notes and increase accidental disclosure risk.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.