Skip to content
PERMISSION/PROTOCOL
Back to incident tracker

2026-10-09

HighPrimary

OpenHuman Background Email Injection Triggered an Unapproved Send in a Controlled Reproduction

OpenHuman's primary advisory reports a background agent invoking an email send without approval after processing synced external content in a controlled reproduction.

OpenHumanTool execution / MCPAuthor-reported controlled demonstration of indirect prompt injection and background approval bypassOpenHuman background memory synchronization and Composio email integration in the advisory's reproduction

What happened

The advisory's reproduction reports that the background agent processed the injected email and invoked Composio send_email as the user without an approval request.

Why it matters

An unapproved email send is reported in the controlled reproduction. Delivery and the exact sensitive data exported are not independently verified; broader integration abuse remains potential impact.

Missing authorization check

Principal-authorized recipient, data scope and payload checks before external send, regardless of whether the agent has an interactive chat context.

Would PP block it?

Bind the send to the authorized recipient, payload and data scope. Background execution must not imply unrestricted authority, and synced email content must not create its own grant.

Incident analysis

Timeline and technical read

Timeline

  1. 2026-10-09

    Vendor-hosted advisory published; versions before 0.57.13 listed as affected and 0.57.13 as patched.

Technical breakdown

  • External email content is synchronized into agent memory through the connected integration.
  • The reproduction instructs the agent to export sensitive notes to an attacker-designated address.
  • The background loop is reported to interpret the instruction and invoke send_email.
  • The disclosed ApprovalGate path returns Allow when no interactive chat context exists; the advisory provides no full model transcript or delivery receipt.

Authorization boundary

Where the authorization boundary should have been

This incident is categorized as Tool execution / MCP. The relevant Permission Protocol gate is Tool-Call Gate. The read is conditional: the block only applies where the real action boundary is routed through a gate.

If enforced at
Composio external-action boundary before email transmission
Still needs
PP does not sanitize synced memory, guarantee trusted provenance, establish actual email delivery or protect unmediated integrations. Full tool and integration mediation remains necessary.
Receipt required for
Sending email as the user with an exact recipient, payload and authorized data scope

An external send boundary could require explicit authority, provided every integration action is mediated; the advisory did not test PP.

Start small

Put the relevant gate at this action boundary.

This incident maps to Tool-Call Gate. Start with the boundary that controls the actual action, then require a signed receipt before execution.

Replay this incident with a signer in the loop