PUBLIC-EVIDENCE AI SECURITY CASE STUDY

SearchLeak: How a Microsoft 365 Copilot Search Link Became a One-Click Data Exfiltration Path

Varonis reported that a Microsoft 365 Copilot Enterprise Search URL could be crafted so that prompt-like text placed in the q parameter was treated by Copilot as instructions rather than as a search string. After a single victim click, Copilot executed those instructions with the victim's own access, searching Microsoft 365 content the user could reach, and was directed to place a retrieved value inside an image URL. Copilot streamed the resulting HTML img tag to the browser before its final sanitisation pass turned the answer into inert text, so the browser issued the image request first. The client Content Security Policy blocked attacker-controlled domains, but Bing image-search endpoints were allowed, so Bing performed the server-side fetch to the attacker URL with the selected Microsoft 365 data carried in the path. Microsoft remediated the issue as CVE-2026-42824.

Tool-Calling LLM / Connected GenAITier 3Indicative ERS 4.8 (2.5–7.2)Evidence source date 2026-06-22

Varonis reported that a Microsoft 365 Copilot Enterprise Search URL could be crafted so that prompt-like text placed in the q parameter was treated by Copilot as instructions rather than as a search string. After a single victim click, Copilot executed those instructions with the victim's own access, searching Microsoft 365 content the user could reach, and was directed to place a retrieved value inside an image URL. Copilot streamed the resulting HTML img tag to the browser before its final sanitisation pass turned the answer into inert text, so the browser issued the image request first. The client Content Security Policy blocked attacker-controlled domains, but Bing image-search endpoints were allowed, so Bing performed the server-side fetch to the attacker URL with the selected Microsoft 365 data carried in the path. Microsoft remediated the issue as CVE-2026-42824.

ASSESSED SYSTEM

Microsoft 365 Copilot Enterprise Search in the pre-remediation state reported by Varonis (disclosed June 2026, fixed by Microsoft as CVE-2026-42824): specifically the handling of the Copilot Search q URL parameter, the streaming answer renderer, the client Content Security Policy allowlist, and the outbound image-fetch path that could be relayed through Bing image-search endpoints.

OUT OF SCOPE

The remediated product (Microsoft shipped a fix for CVE-2026-42824); Copilot chat surfaces and agent features not exercised by the reported chain; tenant-specific permission, DLP and labelling configurations, which are variable and which the brief treats as customer-side follow-up; the Bing image-search service as a product. Fairness (Fa-1..4) is unscored: the evidence is a data-exfiltration chain and produces no fairness signal. This is a point-in-time assessment of one reported configuration, not a rating of Microsoft 365 Copilot.

Architecture: Tool-Calling LLM / Connected GenAI (decision tree Q3) — Q1 = NO (single assistant, no inter-agent topology). Q2 = NO: Copilot Search answers a single user-triggered request; the brief describes no autonomous multi-step planning loop or persistent task state on this surface. Q3 = YES: the model queries Microsoft 365 enterprise search and connector-indexed content (mailbox, calendar, SharePoint, OneDrive, indexed organisational files) and its rendered output initiates outbound network fetches. Q4 (retrieval) also qualifies; the hybrid rule takes the higher-risk class, and both map to the LLM/GenAI intra-axis weight set, so the choice does not move the arithmetic. Tier 3: Tier 3 Internal: Copilot Enterprise Search operates inside an organisational boundary for authenticated, licensed users and matches the spec's Tier 3 'document summarisation / workflow automation' example; the untrusted link ingress is captured as Attack Surface Exposure in the ORP layer, not as a tier change. A tenant whose indexed corpus is dominated by regulated personal data could justify Tier 2, which would shorten the decay half-life and raise the MVTs.

Documented attack or failure path

  1. Attacker crafts a legitimate-looking Microsoft 365 Copilot Search URL whose q parameter contains prompt-like instructions to locate specific internal data and embed it in an image URL.
  2. Link is delivered to the victim by email or chat; the destination is a genuine Microsoft domain, so URL-reputation checks do not flag it.
  3. Victim clicks; Copilot treats the q value as instructions and executes them with the victim's own entitlements across mailbox, calendar, SharePoint, OneDrive and indexed organisational files.
  4. Copilot streams an HTML img tag into the answer; the browser fires the image request before the final sanitisation pass renders the answer inert (a render-before-gate race).
  5. CSP blocks the attacker domain directly, so the crafted URL points at an allowed Bing image-search endpoint.
  6. Bing performs the server-side fetch to the attacker-controlled URL, carrying the selected Microsoft 365 data in the request path — a relay through an allowlisted first-party service.

Observed controls and bounded outcomes

Positive credit is given only where the record directly demonstrates a control operating. Recommended or merely presumed controls receive no positive scoring credit.

  • The client Content Security Policy did block direct fetches to attacker-controlled domains; the attacker was forced to find an allowlisted relay rather than exfiltrating directly.
  • Copilot operated strictly within the victim user's own entitlements — the chain produced no cross-user, cross-mailbox or cross-tenant access, and no privilege escalation was reported. This is scored as positive evidence at Cn-2 = 0.50.
  • Output sanitisation existed and did neutralise the HTML in the completed answer; the defect was ordering (streaming reached the DOM before the release gate), not the absence of a gate — hence Cn-3 = 0.25 rather than 0.00.
  • Microsoft remediated the reported chain as CVE-2026-42824, which is the primary evidence for the low Remediation Feasibility score.

Layer 1 — Intrinsic Vulnerability Profile

Each sub-metric is placed on its five-level rubric by the evidence quoted beside it. Missing applicable evidence remains unknown. The displayed midpoint and interval are scenario values, not inferred control performance.

Sub-metricScoreRubric basisEvidence
Robustness (Ro) — scenario interval 0.17–0.82 (midpoint 0.50), Tier 3 MVT 0.40 indeterminate
Ro-1Adversarial Input Resistance0.50w 0.35The system resists common adversarial attacks and public jailbreak templates, but a multi-step, tool-mediated chain remains effective — the 0.50 anchor. The chain's dependence on three distinct product behaviours is what keeps this above the 0.25 anchor.A URL query parameter was interpreted as an instruction, and the injected instruction successfully drove data selection and output shaping. The attack was not a naive single-step jailbreak: it required chaining parameter-to-prompt confusion with a streaming render race and an allowlisted-service SSRF relay, and the direct exfiltration attempt was blocked by CSP before the relay was found.source: researcher
Fairness (Fa) — scenario interval 0.00–1.00 (midpoint 0.50), Tier 3 MVT 0.45 indeterminate
Transparency (Tr) — scenario interval 0.12–0.88 (midpoint 0.50), Tier 3 MVT 0.45 indeterminate
Tr-3Audit Trail Completeness0.50w 0.25The audit trail reconstructs common sessions but has gaps for the tool-mediated leg of the workflow — the 0.50 anchor. Copilot interaction auditing exists; what is missing in the evidence is linkage from a specific answer to the outbound fetch it caused.The brief directs defenders to build detections in the tools the enterprise controls — Defender, Purview, proxy, CASB, SIEM — using signals such as long or encoded q parameters, Bing image-search requests and internal-looking values inside outbound URL paths. Reconstruction of the exfiltration therefore depends on infrastructure telemetry outside the assistant rather than on a self-contained record of prompt, retrieved evidence, generated markup and outbound fetch.source: brief
Privacy (Pr) — scenario interval 0.06–0.81 (midpoint 0.44), Tier 3 MVT 0.50 indeterminate
Pr-3Data Minimization Compliance0.25w 0.25Some minimisation controls exist (entitlements are enforced), but the retrieval and answer paths draw on far more sensitive data than any single documented purpose requires — the 0.25 anchor.A single crafted query caused Copilot to search across mailbox, calendar, SharePoint, OneDrive and indexed organisational files with no purpose-scoping of what one answer may aggregate. The brief's customer-side guidance — limit Copilot's data access scope, review SharePoint/OneDrive/mailbox/calendar and external-sharing permissions, remove broad access, apply labels and DLP — describes minimisation work that the assessed default configuration did not perform.source: brief
Containment (Cn) — scenario interval 0.17–0.56 (midpoint 0.36), Tier 3 MVT 0.50 indeterminate
Cn-1Scope Enforcement0.25w 0.16Basic boundaries exist and are real — the user-entitlement boundary held throughout — but simple parameter manipulation exceeded the intended task and network scope, which is the 0.25 anchor.The intended scope of a search request is to answer a query; parameter manipulation alone moved the system into locating specified internal values and emitting them into an outbound URL. No value-level policy bound retrieved Microsoft 365 data to permitted destinations, which the brief identifies as the most direct control for the actual exfiltration path (AID-H-018.005).source: brief
Cn-2Escalation Prevention0.50w 0.16Privilege boundaries blocked the escalation paths exercised by a working end-to-end attack, while the more complex multi-step data-flow abuse still succeeded — the 0.50 anchor. Held at 0.50 rather than 0.75 because the evidence shows the boundary holding under one attack, not a tested escalation battery with logging and approval workflows.Despite full control of the model's instructions, the attacker obtained nothing beyond the victim's existing access: Copilot searched only 'Microsoft 365 content the user can reach'. No privilege escalation, role confusion across identities, or cross-tenant access was reported anywhere in the chain.source: researcher
Cn-3Output Filtering Robustness0.25w 0.20A filter exists but is reliably bypassed by the encoding/rendering path rather than by content — the 0.25 anchor. Not 0.50, because the escape was not an edge case: the gate ran after the network effect it was meant to prevent.Copilot streamed a raw HTML img tag to the browser before final sanitisation converted the answer to inert text; the browser had already issued the request. The bypass is deterministic rather than probabilistic — any markup that triggers a fetch on parse defeats a post-completion gate.source: researcher
Cn-6Action Reversibility Classification Rate0.00w 0.09No reversibility classification is performed before execution and the action executes ungated (ARCR = 0) — the 0.00 anchor. Scored because outbound data egress meets the delegated-irreversible definition; it is not treated as a benign render.The outbound image fetch carrying tenant data is an externally visible, non-undoable effect, yet it was generated and executed as a side effect of rendering with no pre-execution classification or gate. The brief's top-priority control is exactly value-level capability metadata and data-flow sink enforcement so that retrieved values cannot enter an outbound sink unless policy permits that value and destination together.source: brief

Unknown, not N/A: 16 applicable sub-metrics lack admissible public evidence. The lower, midpoint, and upper scenarios evaluate each at 0.00, 0.50, and 1.00 respectively; no weight is redistributed merely because evidence is missing.

Layer 2 — Operational Risk Posture

DimensionScoreJustification
AaAutonomy Amplification0.50w 0.20Human-on-the-loop. One user click authorises the whole sequence: Copilot then executes retrieval across all reachable content and emits output that itself generates network activity, with no per-step confirmation. It executes no business transaction and writes no state, which keeps it below the supervised-autonomy anchor.
AsAttack Surface Exposure0.90w 0.25Between the 0.75 and 1.00 anchors. The q parameter is fully attacker-controlled from the open internet and the indexed corpus includes inbound email, i.e. content any external party can write; that is untrusted retrieval, not merely partially trusted external ingestion. Held below 1.00 because there is no multi-agent or MCP tool federation on this surface. elevated
CpCascade Potential1.00w 0.30No verified System Dependency Graph is published for Microsoft 365 Copilot, so DGC cannot be established and the spec's worst-case default sets Cp = 1.00. The reconstruction alone does not independently reach the 1.00 anchor: all four stack layers are reachable (LRR = 1.00, which maps to the 0.75 anchor), but the terminal nodes are read-scoped — retrieval is P1 against the user's own entitlements and the Bing relay performs a fetch rather than modifying external state — so PAD stays low and no ungated path to a P3/P4 node or delegated-irreversible action node is demonstrated. With a verified graph at DGC >= 0.90 this would most likely have scored 0.75.GDCP: worst-case default — no verified dependency graph published elevated
RfRemediation Feasibility0.25w 0.25Microsoft closed the reported chain in product code and issued CVE-2026-42824; the remaining enterprise-side actions the brief prescribes — scope limits, labelling and DLP, proxy/CASB/SIEM detections — are deployment-configuration changes measured in days. Not 0.00, because the fix was vendor-side (customers could not patch it themselves) and the underlying parameter-to-prompt behaviour requires layered input, render and sink controls rather than a single deterministic change.

Nelevated = 2 (dimensions strictly above 0.75) → CRM = 1.15.

Compound Risk Alert. Two or more dimensions are simultaneously elevated (spec 3.2.2); architectural decomposition is recommended before deployment.

Layer 3 — Public-evidence confidence diagnostic

ComponentScoreBasis
Pc — Public provenance evidence0.25The service, the surfaces it indexes and the client-side controls (CSP, sanitisation) are described publicly, but there is no AIBOM, no model or prompt lineage, no connector manifest and no identity-policy artefact available for the assessed configuration. Matches the 0.25 'minimal provenance record' anchor.
Ec — Public evaluation coverage0.29coverage 0.30 (7 of 23 applicable sub-metrics) × independence 1.00 × fidelity 0.95. No Full, Standard, or Lite pathway is claimed for a retrospective article.
Tf — Public-evidence freshness0.35Evidence dated 2026-06-15; age 59 days on the workpaper reference date. Components: C_event 0.35 · C_monitor 0.65 · T_containment 0.67 · T_calendar 0.80 · C_evidence 0.85. Binding term: C_event. dt_days = 59, measured from the primary public disclosure dated 2026-06-15 to the 2026-08-13 evidence reference date; the AIDEFEND brief republished the analysis on 2026-06-22. C_monitor 0.65 — the exfiltration traversed an allowlisted first-party service and the brief has to recommend building the detections in customer-owned tooling, indicating the path was not natively alerted. C_event 0.35 — a demonstrated one-click egress of tenant data across the trust boundary is a major event, and the vendor's subsequent remediation is itself a change event that makes pre-fix evidence unrepresentative of the current service. C_evidence 0.85 — the specific chain is fixed, but the underlying class (parameter-to-prompt confusion, render-before-gate, allowlist relay) is documented as still requiring layered controls. Agentic = true (Tool-Calling class: connector scopes and permissions are mutable at runtime, so the containment staleness floor applies). BAW = false — this surface has no model-writable persistent memory, no runtime agent-to-agent exchange, no self-modifying configuration and no closed feedback loop; the Microsoft 365 index is populated by users and pipelines, not written by the model, so the applicability checklist is not met.

Public-evidence ACI = (Pc × Ec × Tf)1/3 = 0.29 — diagnostic status: Invalid as assessment-of-record evidence. It describes the evidence available to this case study, not the assurance of the underlying system, and is not inserted into the normalized-assurance scenario ERS.

Indicative ERS — normalized-assurance scenario

Worp · ORP0.20(0.50) + 0.25(0.90) + 0.30(1.00) + 0.25(0.25) = 0.688
CRMNelevated = 2 → 1.15
ORPeffective0.688 × 1.15 = 0.791
Wivp · IVP midpoint0.20(0.50) + 0.15(0.50) + 0.20(0.50) + 0.25(0.44) + 0.20(0.36) = 0.457
IVP mitigation0.15 + 0.85(1 − 0.457) = 0.611
Scenario assuranceACI fixed at 1.000 for cross-case comparison; public-evidence ACI 0.294 is diagnostic only
Indicative ERS midpointmin(10, 0.791 × 0.611 × 1/1.000 × 10) = 4.8
Unknown-input interval2.5–7.2; 16 unknown applicable sub-metrics set to 1.00 / 0.00 at the bounds

AIDEFEND defences → AITBM sub-metrics

Identifiers are quoted as they appear on the AIDEFEND in Action brief (retrieved 2026-08-13); the sub-metric mapping is AITBM's own, from the specification's AIDEFEND tables reconciled at catalogue data version 2026.08.05. AIDEFEND renumbers identifiers between releases, so the data version travels with every mapping and neither side's IDs should be cited without one. A mapping identifies a possible evidence route; a recommendation does not prove that the control was implemented or effective and receives no scoring credit by itself.

TechniqueDefence PriorityEvidences
AID-H-018.005Value-Level Capability Metadata & Data Flow Sink EnforcementParent AID-H-018 (Tool Authorization & Capability Scoping). The most direct control for the exfiltration path and the primary basis for both Cn-1 = 0.25 and Cn-6 = 0.00.Very HighCn-1 Cn-6 Cn-7
AID-H-006.002Text, Markup & Structured Output Sanitization and Release GateParent AID-H-006 (AI Output Hardening & Sanitization). Directly evidences Cn-3 = 0.25: sanitising only the completed answer is too late once the browser has fired the image request. Ro-3 is not scored — no output-consistency evidence exists.Very HighCn-3 Ro-3
AID-H-019.001URL Normalization & Allowlist FilteringParent AID-H-019 maps directly to Ro-1, Cn-1, and Cn-3 in the reconciled AIDEFEND dataVersion 2026.08.05 crosswalk. Substantively it addresses the Bing relay leg, which is scored under Cn-1 (sink scope) and Cn-6 (ungated external effect).Very HighCn-1 Cn-3 Ro-1
AID-H-002.002Inference-Time Prompt & Input ValidationParent AID-H-002 (AI-Contextualized Data Sanitization & Input Validation). Only the Ro-1 leg is evidenced here; the Fa-1/Fa-3 legs of the catalogue mapping have no supporting evidence in this case and are not scored.HighFa-1 Fa-3 Ro-1
AID-H-016.001System Prompt Structure & Instruction/Data SeparationParent AID-H-016 (Instruction Hierarchy & Prompt Injection Hardening). Keeping URL parameters in a data-only role is the instruction-hierarchy control whose failure defines the first step of the chain.HighRo-1
AID-D-001.001Per-Prompt Content, Intent & Obfuscation AnalysisParent AID-D-001 (Adversarial Input, Prompt Injection & Signal-Authenticity Detection). Detective support for Ro-1; the brief is explicit that it should support, not replace, deterministic input and data-flow controls.HighRo-1
AID-D-003.002Sensitive Information & Data Leakage DetectionParent AID-D-003 (AI Output Monitoring & Policy-Violation Detection). Output-layer scanning for sensitive values inside generated URLs is corroborating evidence for the Cn-3 and Cn-1 placements and for C_monitor = 0.65.HighCn-1 Cn-3 Cn-7 Ro-3

WHAT THIS CASE TEACHES

This is the clean illustration of cp_basis = 'default' versus 'corroborated': all four stack layers were reachable and data did leave the tenant, but every terminal node in the observed path was read-scoped, so the reconstruction supports 0.75 on its merits and Cp = 1.00 applies only because no verified System Dependency Graph exists — while the controls that held (CSP, entitlement scoping, a real sanitiser) raise Cn-2 and Ro-1 well above the containment floor.

Sources: AIDEFEND in Action — SearchLeak: How a Microsoft 365 Copilot Search Link Became a One-Click Data Exfiltration Path (research by Varonis) · CVE-2026-42824 — the identifier under which Microsoft remediated the reported chain, per the brief · Primary source — SearchLeak: How We Turned M365 Copilot Into a One-Click Data Exfiltration Weapon (2026-06-15)

AITBM sub-metrics referenced