highVulnerability

GHSA-fq4x-789w-jg5h

## Summary Two inbound-mail handlers act on a privileged effect without verifying that the sender is the operator, while a sibling handler in the same repo does. The higher-impact one: any external email routed to the bridge inbox causes the dispatcher to resume the operator's Claude Code session with `permissionMode: 'bypassPermissions'`, embedding the attacker-controlled `from`/`subject`/`preview` verbatim into the prompt the resumed agent reads — an indirect prompt injection into a fully-privileged agent (Bash/Write/Edit/WebFetch + the agenticmail MCP toolbelt) running as the operator's OAuth identity. The sibling operator-query email-reply hook gates the same untrusted-From provenance with `isOperatorReplySender(replyFrom, config.operatorEmail)` (fail-closed); the bridge-wake path — a strictly higher-privilege effect — has no equivalent. ## Affected code (current HEAD, commit b95f52e) Untrusted provenance: external inbound email enters at `packages/api/src/routes/inbound.ts:41` (POST /mail/inbound); the `x-inbound-secret` authenticates only the relay->API hop, not the external sender, so `from`/`subject`/`preview` are attacker-controlled. Privileged sink (bridge-wake, bypassPermissions): - `packages/claudecode/src/dispatcher.ts:2040` `handleBridgeMail` extracts `subject`/`from`/`preview` (`:2045-2049`) and calls `planBridgeWake({ session, mail: { ..., from, preview } })` (`:2052`) with NO sender check — routing keys only on session freshness (skip-live / escalate / resume). - `planBridgeWake` -> `packages/core/src/host-bridge.ts:141` `composeBridgeWakePrompt` embeds the untrusted `from`/`subject`/`preview` (preview sliced to 600 chars at `:144`) verbatim into the prompt. - `packages/claudecode/src/bridge-wake.ts:103` `resumeBridgeSession` runs the prompt via the Claude Code SDK with `permissionMode: 'bypassPermissions'` against the operator's last session (resume + same mcpServers). Guarded sibling (same class, authenticated): `packages/api/src/routes/inbound

Properties

ghsa_id
GHSA-fq4x-789w-jg5h
severity
high
summary
AgenticMail: Unauthenticated inbound mail triggers bypassPermissions resume of the operator's Claude Code session (bridge-wake)
cve_id
GHSA-fq4x-789w-jg5h
is_ghsa_only
true
ghsa_published
2026-06-18T17:21:27Z
source_url
https://github.com/advisories/GHSA-fq4x-789w-jg5h
ghsa_updated
2026-06-18T17:21:29Z

Related Entities (10)

AFFECTS (4)

[Software]npm/@agenticmail/codex
[Software]npm/@agenticmail/openclaw
[Software]npm/@agenticmail/claudecode
[Software]npm/@agenticmail/core

VULNERABLE_TO (4)

[Software]npm/@agenticmail/codex
[Software]npm/@agenticmail/openclaw
[Software]npm/@agenticmail/claudecode
[Software]npm/@agenticmail/core

HAS_WEAKNESS (1)

[Weakness]Missing Authentication for Critical Function

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-fq4x-789w-jg5h — Ninja Signal Threat Intelligence | Ninja Signal