Back to skill

Security audit

Inbox Placement Monitor

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its stated email-monitoring purpose, but it under-declares persistent memory writes that can affect future sessions.

Review before installing if your host relies on the manifest for permissions. The skill should be acceptable only if you are comfortable with it saving deliverability baselines and placement-regression notes to persistent memory after consent; ideally it should declare state-write capability and show exact destination files before writing.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
distribution-manifest.json:2
Finding

Persistent Memory Writes Are Not Declared by the Package Capability Manifest

Content
View full analysis

Vulnerability Details

File Location: distribution-manifest.json:2-6; conflicting write behavior in SKILL.md:39-40 and SKILL.md:70
Vulnerability Type: Capability declaration mismatch and least-privilege violation
Risk Level: Medium

Vulnerable Code

distribution-manifest.json:2-6 declares only inline delivery and canonical state read capabilities:

json
"capabilities": [
  "inline-delivery",
  "canonical-state-read"
],
"capability_ceiling": "lite",

However, SKILL.md:39-40 directs the agent to write to persistent and shared memory:

markdown
- **Writes**: a user-facing placement + reputation-trend report plus a reusable SEND-`S` placement snapshot to `memory/email/inbox-placement-monitor/`.
- **Promotes**: placement regressions (a provider dropping below the inbox threshold, a Postmaster/SNDS reputation downgrade, a spam-complaint rate crossing 0.1%) and the current placement snapshot to `memory/hot-cache.md` and `memory/open-loops.md`; propose durable sending-domain / IP / warming decisions as pending-decision items — do not write `decisions.md` directly.

SKILL.md:70 further specifies the persistent write workflow:

markdown
After delivering, ask "Save these results for future sessions?" If yes, write the placement + reputation-trend report and the reusable SEND-`S` placement snapshot to `memory/email/inbox-placement-monitor/YYYY-MM-DD-<domain-or-topic>.md` — see [skill-contract.md §Save Results Template](../../../references/skill-contract.md). Store the current run's placement so it becomes the next run's baseline. Promote placement regressions and the current snapshot to `memory/hot-cache.md` and add unresolved regressions to `memory/open-loops.md`. Do not write memory without asking.

Technical Analysis

The package manifest serves as the machine-readable declaration of the privileges a host should grant to the skill. It declares canonical state read access but does not declare persistent state-write a ...[truncated 2949 chars]

Remediation
View remediation

Remediation Suggestions

  1. Add the precise persistent state-write capability required by the host's manifest schema. Do not rely solely on prose in SKILL.md to disclose write behavior.
  2. Restrict default writes to the skill-specific namespace:
    • memory/email/inbox-placement-monitor/
  3. Require separate, explicit consent before promoting content into shared state:
    • memory/hot-cache.md
    • memory/open-loops.md
  4. Present the exact destination files and a preview of the proposed content before writing.
  5. Convert imported telemetry into a strict structured schema containing only expected fields, such as provider names, numeric rates, reputation states, timestamps, and source labels.
  6. Do not copy raw report text, embedded instructions, markup, or unknown fields into persistent memory.
  7. Treat state-write denial as a supported execution mode: return the report inline and clearly state that no baseline was persisted.
  8. Add automated validation that compares all documented filesystem and state mutations against the capabilities declared in distribution-manifest.json.
  9. If the package profile does not permit canonical state writes, remove the write and promotion instructions rather than depending on runtime permission escalation.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (1)

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 · SKILL.md (reported line 70)May include surrounding context.

md
## Save Results

After delivering, ask "Save these results for future sessions?" If yes, write the placement + reputation-trend report and the reusable SEND-`S` placement snapshot to `memory/email/inbox-placement-monitor/YYYY-MM-DD-<domain-or-topic>.md` — see [skill-contract.md §Save Results Template](../../../references/skill-contract.md). Store the current run's placement so it becomes the next run's baseline. Promote placement regressions and the current snapshot to `memory/hot-cache.md` and add unresolved regressions to `memory/open-loops.md`. Do not write memory without asking.

## Reference Materials

Static analysis

No suspicious patterns detected.