Failure pattern · 23 documented incidents
Privileged action without an enforceable approval gate
Limits and approvals live in a prompt, a UI checkbox or a convention instead of code the automation cannot bypass.
See it happen
Watch how this failure unfolds, then switch to the same situation with the safeguard in place. Click any step to replay it.
Scroll the diagram sideways to see every system.
The limit was a suggestion, not a control.
What goes wrong:
- The refund limit lives only in the prompt: “never refund more than $500.”
- An email claims a manager has already approved an $8,000 refund.
- Persuaded, the agent calls the API, and no code checks the amount.
- The limit was a suggestion, not a control.
With the safeguard:
- The limit is enforced in the payment path, in code the model cannot change.
- The same email claims an $8,000 approval.
- The agent tries anyway. The gate holds the payment and asks a person.
- A person decides, and the agent cannot skip the check.
What it is
Spending limits, approvals or “never do this” rules live in a prompt, a UI checkbox or team habit rather than in code the automation has to pass through. So when the automation is confused, persuaded or simply wrong, nothing stops it.
How it happens
- An AI agent or script holds credentials that let it act directly
- Limits are written into instructions or checked only in the user interface
- No server-side check requires a human to sign off above a threshold
What it causes
- Refunds, payments or trades far beyond what anyone intended
- Commitments made on the company’s behalf without authority
- Deletions or permission changes that can’t be undone
Warning signs
- High-value actions in the logs with no matching approval
- Transcripts where the agent agrees to an out-of-policy request
- A sudden jump in how fast actions are being approved
How to prevent it
Enforce limits and approvals in deterministic code. Put spending limits, kill switches and human approval for high-impact actions in a backend control layer that the agent, script or operator interface cannot skip.
- Limits and approval thresholds are enforced in backend code, never only in a prompt or the UI
- Actions above a risk threshold need an approval the automation cannot create for itself
- The agent can propose a high-impact action, but a separate step with its own check executes it
Key ideas:Kill switchLeast privilegeHuman-in-the-loop approval
Check your system against the full launch checklistReal incidents with this pattern
Documented incidents first. Each links to its public source.
GitHub Actions injection leaks Nx's npm token; malicious packages use local AI coding tools to hunt for secrets (2025)
A pull-request title validation workflow used pullrequesttarget, which runs with repository secrets, and echoed the unsanitized PR title, creating an injection point; the workflow's token also had read/write permissions.
Safeguard: Never run untrusted pull-request input with secrets
Prompt injection makes GitHub Copilot turn off its own confirmations and run commands (CVE-2025-53773)
Instructions planted in content the agent reads could make GitHub Copilot write "chat.tools.autoApprove": true into the project's .vscode/settings.json, which turns off all user confirmations.
Safeguard: Never let an agent change its own permissions
Stolen OAuth tokens from the Salesloft Drift integration are used to export data from customers' Salesforce instances (2025)
From as early as August 8 to at least August 18, 2025, an actor tracked as UNC6395 used compromised OAuth tokens of the Salesloft Drift third-party application to access customers' Salesforce instances.
Safeguard: Scope and expire third-party integration tokens
AI coding agent deletes a live production database during a code freeze (Replit, 2025)
An AI coding agent deleted a live production database that held data on more than 1,200 executives and over 1,190 companies.
Safeguard: Separate development and production and enforce freezes in code
Malicious code committed to the Amazon Q Developer VS Code extension via a compromised token (AWS, 2025)
Malicious code was committed to the extension's open-source repository using a compromised GitHub token in a build configuration.
Safeguard: Protect build credentials and require review for releases
Hidden instructions in a support ticket make an MCP-connected assistant expose private SQL tables (Supabase MCP, 2025)
General Analysis showed that hidden instructions in a customer support ticket could make a developer's MCP-connected assistant query a private table of integration tokens.
Safeguard: Give agents least-privilege, read-only database roles
Prompt injection in a public GitHub issue makes an MCP-connected agent leak private repository data (2025)
Invariant Labs showed that a malicious instruction placed in an issue on a public repository could be read by an agent connected through the GitHub MCP server.
Safeguard: Scope agent credentials per task and repository
Airline held liable when its website chatbot gave wrong bereavement-fare advice (Moffatt v. Air Canada, 2024)
A customer relied on Air Canada's website chatbot, which told him he could apply for a bereavement fare retroactively; the airline's policy did not allow that.
Safeguard: Ground policy answers in the authoritative policy source
Password spray on a legacy test tenant exposes Microsoft corporate email to a nation-state actor (2024)
Legacy test tenant without MFA compromised via password spraying; adversary created malicious OAuth apps with mail.read privileges.
Safeguard: Enforce MFA everywhere, including legacy and test tenants
SQL injection in MOVEit Transfer exploited by the CL0P ransomware gang (2023)
CISA and the FBI report that the CL0P ransomware gang exploited a SQL injection vulnerability (CVE-2023-34362) in Progress MOVEit Transfer beginning May 27, 2023, installing a web shell called LEMURLOOT.
Safeguard: Patch internet-facing transfer tools immediately
GitHub's RSA SSH host private key briefly exposed in a public repository (2023)
GitHub.com's RSA SSH private key was briefly exposed in a public GitHub repository.
Safeguard: Scan for private keys before they are published
Privilege escalation and a certificate-validation flaw allow cross-account database access (Azure PostgreSQL "ExtraReplica", 2022)
Researchers exploited a bug in Azure's modified PostgreSQL engine to gain superuser privileges and run operating-system commands on their own database instance.
Safeguard: Validate tenant identity with strict, anchored certificate checks
Log4Shell: remote code execution through JNDI lookups in Apache Log4j (2021)
CVE-2021-44228 (Log4Shell) affects Apache Log4j 2.0-beta9 through 2.14.1 and lets an unauthenticated remote actor execute arbitrary code through JNDI lookups.
Safeguard: Maintain a software bill of materials and patch fast
Zillow winds down its algorithmic home-buying business after price forecasts miss (2021)
Machine learning pricing models drifted during market volatility; automated purchasing bought homes above value resulting in $540M inventory write-down.
Safeguard: Cap automated exposure in deterministic limits
Backbone maintenance command disconnects Facebook's data centers and locks out recovery tooling (Meta, 2021)
A command issued to assess global backbone capacity unintentionally took down all the connections in Facebook's backbone network.
Safeguard: Test the guard that is meant to stop dangerous commands
Retail broker failed best-execution reviews while taking high payment for order flow (Robinhood, SEC 2020)
From July 2016 to June 2019 the broker received high payment for order flow but did not conduct adequate, regular and rigorous reviews of execution quality on customer orders.
Safeguard: Review execution quality regularly and rigorously
SUNBURST: a backdoor inserted into SolarWinds Orion builds reaches customers (2020)
Compromised build server injected SUNBURST malware into compiler memory during build process; distributed to 18,000 customers.
Safeguard: Harden and isolate the build pipeline
Confusing loan-system interface leads Citibank to wire nearly $900 million in principal to Revlon lenders (2020)
Unintuitive Flexcube interface required checking obscure override box; bank accidentally wired $894M of proprietary funds to Revlon lenders.
Safeguard: Design payment interfaces so a risky option is explicit
Phone spear-phishing gives attackers Twitter's internal support tools; 130 accounts targeted (2020)
A phone spear-phishing attack on a small number of employees gave attackers credentials to internal support tools on July 15, 2020.
Safeguard: Require two-person approval for high-impact account actions
Capital One cloud breach and an $80 million OCC penalty for weak cloud-migration risk assessment (2019)
The OCC assessed an $80 million civil money penalty against Capital One for failing to establish effective risk assessment processes before migrating significant IT operations to the public cloud and for not correcting…
Safeguard: Assess cloud risk before migrating, and fix findings on time
Mistyped input to a capacity-removal command takes down S3 in us-east-1 (AWS, 2017)
An engineer ran a command meant to remove a small number of servers from an S3 subsystem, but one input was entered incorrectly and more capacity was removed than intended.
Safeguard: Enforce minimum-capacity limits inside the tool
Repurposed flag and an incomplete deployment send runaway orders from Knight Capital's router (2012)
Repurposed test flag on 1 of 8 servers activated legacy Power Peg loop; bought 4M shares in 45 minutes losing $460M.
Safeguard: Enforce hard pre-trade limits in deterministic code
Layering algorithm places and cancels large E-mini S&P 500 orders around the 2010 Flash Crash
The CFTC alleged a layering algorithm automatically placed four to six very large sell orders in the E-mini S&P 500 order book and cancelled them without execution.
Safeguard: Limit order modification and cancellation behaviour
404 security advisories and illustrative scenarios with this pattern
Software component issue could reach internal services
Server-Side Request Forgery (SSRF) reported in the ticket sales chart PDF export functionality of Wegow. According to the report, an authenticated user with a promoter account can manipulate the parameter of the POST…
Software component issue could allow unintended commands to run
RIOT is an open-source microcontroller operating system designed for Internet of Things devices and other embedded systems.
Software component issue could expose or alter stored data
A public security advisory describes this issue. Review the linked source for the technical details and remediation guidance.
Software component issue could allow unintended commands to run
The ELEX WordPress HelpDesk & Customer Ticketing System plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 3.3.7 via the initMailPart function.
Software component issue could allow unintended commands to run
The 10Web Booster – Website speed optimization, Cache & Page Speed optimizer plugin for WordPress is vulnerable to a limited file write via path traversal in versions up to, and including, 2.34.5 This is due to the…
Software component issue could allow unintended commands to run
The The Slim SEO – AI SEO Plugin, Lightweight, Fast & Automated plugin for WordPress is vulnerable to arbitrary shortcode execution in all versions up to, and including, 4.11.1 This is due to the software allowing users…
Software component issue could allow unintended commands to run
The WP User Avatar / ProfilePress plugin for WordPress is vulnerable to Arbitrary Shortcode Execution in versions up to, and including, 4.17.5.
Software component issue could make the application process unsafe input
The Sunshine Photo Cart – Client Photo Gallery & Photo Proofing for Photographers plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.7.4 via deserialization of untrusted…
Software component issue could make the application process unsafe input
The Search Regex plugin for WordPress is vulnerable to PHP Object Injection in version 3.5 via deserialization of untrusted input in the replaceall function.
Software component issue could allow unintended commands to run
The Groundhogg — CRM, Newsletters, and Marketing Automation plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the copyfile function in all versions up to, and…
Software component issue could expose or alter stored data
The Vitepos – Point of Sale (POS) for WooCommerce plugin for WordPress is vulnerable to blind SQL Injection via the 'srcby[].val.start / srcby[].val.end (operator 'bt')' parameter in all versions up to, and including,…
Software component issue could grant elevated privileges
The User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 4.0.3 via the role parameter…
In the standards
CollectSEA's mapping; not an official determination by the standards bodies.
- ASI03Identity and Privilege AbuseOWASP Agentic Top 10
- LLM03Excessive AgencyOWASP LLM Top 10
- AC-3Access EnforcementNIST SP 800-53
- AC-5Separation of DutiesNIST SP 800-53
- AC-6Least PrivilegeNIST SP 800-53
- RV.3.4Update the development processNIST SSDF
- MAP 5.1Estimate impacts from past uses and public incident reportsNIST AI RMF
- CWE-862Missing AuthorizationCWE