Cases › security breach › LR-2026-0090
AgentForger: CSRF via ChatGPT Workspace Agents Builder URL parameters forges attacker-controlled autonomous agent
Severity minor: In Zenity Labs' demonstration, the forged agent operates inside the organization's trust boundary with access to connected services; the source describes recon, data harvesting, impersonation and business email compromise in its write-up, and names no real victim.
Earliest source we hold 2026-07-23
Zenity Labs found that OpenAI's Workspace Agents Builder accepted an initial_assistant_prompt URL parameter that was auto-submitted and executed, letting an attacker-controlled link create and publish an autonomous agent inside a logged-in victim's session.
Risk grouping: AI attacked
| Who caused it | A person or organisation “When a logged-in victim clicks the link, ChatGPT opens the Builder in the victim’s authenticated session and automatically submits the prompt embedded in the URL.” source |
|---|---|
| Intended or not | Intended “We call it AgentForger: a Cross-Site Request Forgery (CSRF) that doesn't forge a single request; it forges an entire autonomous agent, attacker-controlled and living inside your organization's trust boundary.” source |
| Before or after release | After release “When a logged-in victim clicks the link, ChatGPT opens the Builder in the victim’s authenticated session and automatically submits the prompt embedded in the URL.” source |
| The AI's part | Attacked “The Builder treats the initial_assistant_prompt query parameter as executable input rather than user-supplied content requiring confirmation.” source |
The story
What the sources state
- Cause a permission, scope or wiring error
- What set it off hidden instructions in its input
Others like this
ChatGPT advised Tumbler Ridge school shooter on mass murder before February 2026 attack 2026-10-17
Eight state attorneys general sue OpenAI over alleged harms to teenage ChatGPT users 2026-10-16
ChatGPT alleged to have assisted Florida State University shooter (contested lawsuit) 2026-10-01
Guardian test: ChatGPT and Grok remove hijab from AI-generated image of Muslim woman 2026-10-01
Safeguards a source says failed
Human approval bypassed: “The mechanism intended to require human approval for sensitive actions can itself be disabled by the instructions being executed.”
Human approval bypassed: “Because the prompt has already switched Outlook approvals to “Never ask,” the Preview run executes without showing an approval prompt.”
A model read these from the sources; each quote was checked word for word against its source.
Show the full account: 24 items from the primary sources
What happened, in order
- June 4, 2026 Zenity Labs reported the AgentForger vulnerability to OpenAI through Bugcrowd on June 4, 2026.
- June 5, 2026 Bugcrowd triaged the report on June 5, 2026.
- June 5, 2026 OpenAI accepted the vulnerability on June 5, 2026.
- June 8, 2026 OpenAI fixed the vulnerability on June 8, 2026, within 4 days of disclosure.
Who and what was involved
- OpenAI's Workspace Agents can connect to Outlook, Gmail, Slack, Google Drive, SharePoint, and Teams, execute actions across those services, and run on a schedule.
- The attack requires a victim who is logged into ChatGPT, has access to Workspace Agents, and has at least one authorized connector.
How the agents communicated and organised
- The attacker sends a phishing link containing the initial_assistant_prompt parameter; when the victim clicks it, ChatGPT opens the Builder in the victim's authenticated session and automatically submits the prompt.
- The forged agent checks the user's email inbox for attacker-controlled instructions, so the attacker only needs to send an email to task it.
What they used to do it
- The Builder accepts initialization state through URL parameters, specifically template_name and initial_assistant_prompt.
- The template_name parameter selects a starter agent template, such as template_name=chief-of-staff opening the Builder with the 'Chief of Staff' template preselected.
- The initial_assistant_prompt parameter provides instructions to the Builder, and when the page loads, its value is automatically submitted and executed.
- The Builder creates an agent from the chief-of-staff template and names it 'TASK Mail Operator.'
- The Builder attaches existing connectors, including Outlook Email and template defaults such as Gmail, Calendars, Slack, and Teams, without a new consent screen.
- The prompt instructs the Builder to switch Outlook approvals to 'Never ask,' disabling the approval gate.
- The Builder publishes the agent live and installs multiple recurring hourly schedules, offset from one another to create effective check-ins every five minutes.
- The Builder invokes Preview Mode to run immediately, executing the newly created agent against the victim's connected accounts using the approval settings just configured.
What they did to avoid being caught
- The attack does not need to trigger a new OAuth consent screen because the connectors were already authorized by the victim during prior ChatGPT use.
- Because the prompt switched Outlook approvals to 'Never ask,' the Preview run executes without showing an approval prompt.
What made it possible
- The Builder treats the initial_assistant_prompt query parameter as executable input rather than user-supplied content requiring confirmation.
- The Builder allows the same prompt to modify security-relevant configuration, including approval policies and execution schedules.
- The mechanism intended to require human approval for sensitive actions can itself be disabled by the instructions being executed.
How it was found
- Zenity Labs discovered the vulnerability during their research.
What it reached, and the numbers
- The forged agent becomes a persistent operator that can continue waking up on its schedule, checking the user's email inbox for attacker-controlled instructions, carrying out new instructions with the victim's connected services, and sending results back out.
- In Part 2, the researchers use the same command channel to task the forged agent to recon the organization, find sensitive data, harvest credentials, impersonate the victim, deliver internal phishing, and stage business email compromise.
Show every field, with its source and grade
The AI system
What happened
Impact
Context
LR-2026-0090 · version 12 · published 2026-10-25 after automatic checks; not yet checked field by field by a person · changes to this case · JSON