Back to skill

Security audit

dev-inbox

Security checks for vulnerabilities and agentic risk

Overview

The skill is not malicious, but it can automatically save or publish session content to GitHub, agent memory, or TODO files without enough destination-specific confirmation.

Review this skill carefully before installing. It is useful for follow-up tracking, but use it only if you are comfortable with agents creating GitHub issues, writing memory entries, and editing TODO.md from session content. Avoid using it with secrets, customer data, private vulnerability details, or sensitive internal plans unless you first modify the workflow to require confirmation and redaction before any durable or remote write.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:76
Finding

Automatic GitHub Issue Creation May Disclose Sensitive Session Content

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 76–80 and 127–139
Vulnerability Type: Sensitive information exposure through unsafe external publication
Risk Level: Medium

Vulnerable Code

markdown
Treat an explicit request to record or defer an item as consent. This includes phrases such as "记一下", "以后再说", "log this", "track this", and direct `dev-inbox` invocation.

1. Classify the item.
2. Check for an existing related record.
3. Persist or merge it without asking for confirmation again.
4. Report the record location, then return to the active objective.
markdown
1. **GitHub remote + `gh` CLI available**
   - Check: `git remote get-url origin 2>/dev/null && command -v gh`
   - Action: `gh issue create` with title, label, and body
   - Why discoverable: Agent can `gh issue list --state open --label <type>`
   - Merge logic: Search open issues with same label + similar title keywords. If found → append checklist item. If unsure → ask user.

2. **Agent memory system available** (Devin memories, Claude memory, etc.)
   - Action: Write to memory with `[TODO]` prefix and type/priority metadata
   - Why discoverable: Automatically loaded on next session start

3. **Project directory exists**
   - Action: Append to `TODO.md` in project root (create if absent)

Technical Analysis

The Skill interprets a general request to remember, track, or defer an item as authorization to persist it without further confirmation. Its destination hierarchy prioritizes creating a GitHub Issue whenever a GitHub remote and the gh command are available.

Consent to remember information does not necessarily constitute informed consent to transmit that information to a remote repository. The instructions do not require the agent to:

  • Check whether the destination repository is public or private.
  • Confirm that the selected remote belongs to the intended project or organization.

...[truncated 2225 chars]

Remediation
View remediation

Remediation Suggestions

  1. Default to a local destination such as TODO.md unless the user explicitly requests creation of a GitHub Issue.
  2. Distinguish consent to retain information from consent to transmit it externally. Require destination-specific confirmation before the first remote publication.
  3. Display the target repository, its visibility, issue title, labels, and sanitized body before submission.
  4. Verify that the GitHub remote corresponds to the active project and query repository visibility before creating an issue.
  5. Scan titles and bodies for access tokens, passwords, private keys, connection strings, personal data, customer identifiers, and other confidential material.
  6. Redact suspected secrets automatically and require explicit confirmation when potentially sensitive content remains.
  7. Provide a policy option that permanently disables remote destinations or restricts publication to approved repositories.
  8. Avoid placing sensitive details in command-line arguments. Use a securely permissioned temporary file or standard input for the issue body, and delete temporary data immediately afterward.
  9. Document that GitHub Issues may trigger notifications, webhooks, indexing, and long-term retention beyond the repository itself.
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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README defines the skill as handling 'anything that comes up during a session' and says it 'works in any context,' which creates an unusually broad activation scope. In an agent setting, this can cause the skill to intercept ordinary conversation or unrelated user content and route it into persistence mechanisms without sufficiently clear user intent.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger conditions include vague heuristics such as noticing something 'unrelated to the current task' and examples in natural language, which are easy for an agent to over-apply. This ambiguity increases the chance of false activation, causing unintended triage, retention, or external issue creation from normal dialogue.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README states the skill will 'automatically pick the best destination' including GitHub Issue, agent memory, or TODO.md, but does not warn about persistence, visibility, or sensitivity of the recorded content. That creates a real risk of exfiltrating private user data, internal project details, or incidental conversation content into durable local or external systems without informed consent.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
87% confidence
Finding

The feature 'records after deduplication without asking for confirmation again' authorizes autonomous state-changing actions based on prior inference rather than current explicit approval. In this skill's context, that is dangerous because the action is persistence to memory, files, or external trackers, which can create privacy, integrity, and auditability problems if the agent misclassifies content.

Content

Scanner excerpt · README.md (reported line 29)May include surrounding context.

md
## Key features

- Proactive: agent intervenes when it detects off-task items
- Explicit requests: records after deduplication without asking for confirmation again
- Proactive inference: proposes title, type, and priority for one-word confirmation
- Merge logic: checks for existing related records before creating duplicates
- Environment-adaptive: works with or without GitHub, with or without agent memory

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The description says the skill should be used broadly at message intake for many loosely defined situations, including multi-request messages and deferred items, without strong scoping constraints. That broad activation surface increases the chance the agent routes normal conversational content into this skill, which is risky because the skill is designed to persist information durably.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger list includes very generic phrases such as "inbox", "log this", and common deferment language, which can cause the skill to activate during ordinary conversation rather than only on deliberate invocation. In this skill, accidental activation matters because activation can lead to durable persistence of user content into files, memory, or external issue trackers.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs the agent to persist explicit recording requests found in conversation or recovered context before continuing, but it provides no sensitivity screening, minimization, or redaction step. As a result, secrets, personal data, internal URLs, credentials, or other sensitive context could be copied into durable storage merely because they appeared in a request to "remember" or "track" something.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Treating natural-language requests like "log this" or "remember this" as blanket consent to save content bypasses informed confirmation for potentially sensitive material. Users often use such phrases casually, and the skill's instructions allow immediate persistence or merging into durable stores without verifying what data is being stored or where it will go.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
84% confidence
Finding

The instruction to "persist or merge it without asking for confirmation again" authorizes autonomous state-changing actions that can write user content into durable stores without a final user checkpoint. In this skill, that autonomy is more dangerous because the action may affect external systems like GitHub or long-lived agent memory, making mistakes hard to undo and potentially exposing sensitive information.

Content

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

md
1. Classify the item.
2. Check for an existing related record.
3. Persist or merge it without asking for confirmation again.
4. Report the record location, then return to the active objective.

Ask one focused question only when deduplication is genuinely ambiguous.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly prioritizes durable and discoverable storage destinations, including GitHub issues, agent memory, and project TODO files, for arbitrary recorded content. This creates a clear data-exfiltration and over-retention risk because user-provided or recovered context may be propagated into external services or shared repositories where access controls differ from the live conversation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.