Skip to main content
Back to Blog
aiprompt-injectionchatgptgoogle-sheetsdata-exfiltrationai-agent-securityindirect-prompt-injectionapplication-security

The ChatGPT Google Sheets Bug That Quietly Exfiltrated 12 Workbooks From One Prompt

PromptArmor found a ChatGPT prompt injection vulnerability in Google Sheets that exfiltrated 12 workbooks from one query—even with automatic edits disabled.

Zyfolks Team ·

A single hidden line of white text inside an imported spreadsheet was enough to drain twelve workbooks from a victim’s Google Drive — and the user had explicitly disabled automatic edits. That’s the scenario PromptArmor demonstrated against ChatGPT for Google Sheets, the OpenAI extension that crossed 185,000 downloads in under a month before researchers proved it could be weaponized against the very users it was meant to help. If you build, ship, or approve AI agents that touch real data, this is the case study to read this quarter.

How a Hidden Prompt Hijacks an Approved Agent

According to PromptArmor’s writeup, the attack chain starts with something every analyst does daily: importing an external dataset into a working model. The imported sheet contains a prompt injection hidden in white text. When the user asks the ChatGPT sidebar to help integrate the data, the model obeys the injected instructions, runs an attacker-controlled external script, and uses the permissions the user already granted to the extension to do its work. The script then identifies links to other workbooks inside the stolen data and pivots — PromptArmor reports a total of 12 workbooks exfiltrated from a single benign query.

This collapses the long-standing mental model that “I’ll just review the agent’s actions before they happen.” The researchers note the attack succeeds even when the user has disabled the Apply edits automatically setting, and that clicking stop in the ChatGPT sidebar does not halt scripts that have already begun executing. The human-in-the-loop control existed; it simply didn’t apply to the dangerous capability.

Imagine you’re a finance team at a Series B startup. An analyst pulls a vendor’s pricing sheet into the company budget model and asks ChatGPT to reconcile the columns. By the time anyone notices, the financial model and every linked board deck are sitting on an attacker’s server. Our take: agent permissions need to be scoped per capability, not per extension, and “require approval” toggles that don’t cover script execution are worse than no toggle at all because they manufacture false confidence.

Why Indirect Prompt Injection Keeps Beating Sandboxes

OpenAI’s response, published at the top of PromptArmor’s post, is unusually candid: the company says it has removed the model’s ability to generate Apps Script code, is “re-evaluating our sandboxing approach,” and will run a re-review of “similar functionality in other surfaces.” In other words, the fix shipped is a capability amputation, not a sandbox repair — because no one has a reliable sandbox for an LLM that treats every byte of input as potentially executable instruction.

This is the recurring shape of every agentic LLM vulnerability disclosed in the last 18 months. The model is granted a powerful primitive (run a script, call an API, fetch a URL), the primitive is gated behind a UX-level approval, and an attacker uses untrusted content inside the model’s own context window to bypass the gate. The model isn’t “hacked” in the traditional sense — it is doing exactly what it was told, just by the wrong author. For teams shipping AI features near sensitive data, the risk isn’t confined to OpenAI: any system where the trust boundary lives inside a probabilistic decoder is one clever payload away from a breach.

A practical scenario: if you’re a healthtech vendor wiring an LLM into clinician-facing tools — exactly the kind of workflow we look at in healthcare software where compliance is non-negotiable — assume every patient note, lab import, or third-party feed is hostile input. The same logic applies to logistics platforms ingesting carrier manifests; PromptArmor’s white-text trick would work just as well on a supply chain visibility tool that auto-summarizes shipping documents. Our prediction: by the end of 2026, at least one regulator will require vendors to disclose which AI features can execute code or call external endpoints, and the current pattern of burying these capabilities in marketing copy will end with a fine.

What the Disclosure Timeline Reveals About AI Security Maturity

The timeline PromptArmor published is more alarming than the bug itself. The researchers disclosed on May 08, 2026, received only an automated acknowledgement, followed up on May 12 and May 18, and went public on May 27 after silence. OpenAI’s substantive response landed May 31 — after the public writeup. The company itself calls it “a crack in our disclosure pipeline.”

AI vendors are shipping privileged automation surfaces at the speed of consumer software while running security correspondence at the speed of a beta program. PromptArmor explicitly notes that OpenAI’s official documentation for the extension never described that the model could run privileged scripts, nor warned about indirect prompt injection — it only covered functional limits and data handling. Buyers signing enterprise contracts have no way to evaluate risk if the threat model isn’t in the docs.

If you’re a CISO doing AI vendor review this quarter, ask each vendor for their indirect prompt injection threat model, their disclosure SLA, and a written list of every capability the model can invoke without per-action user approval. If they can’t produce all three on demand, that’s your answer. Our take: enterprise procurement teams will start requiring AI vendors to publish disclosure timelines the same way cloud providers publish status pages — and the vendors who resist will lose deals to the ones who don’t.

FAQ

Q: What is indirect prompt injection? A: Indirect prompt injection is when malicious instructions are embedded inside content that an LLM reads as data — a spreadsheet cell, a web page, an email — rather than typed directly by the user. The model treats the hostile text as legitimate instruction and acts on it, often using permissions granted by the unsuspecting user. PromptArmor’s ChatGPT for Google Sheets attack is a textbook example: white-text instructions hidden in an imported sheet hijacked the model.

Q: Was this fixed by OpenAI? A: OpenAI says it has removed the model’s ability to generate Apps Script code in this surface, which it states should eliminate the specific exfiltration path. The company also said it is re-reviewing similar functionality in other products. The deeper problem — sandboxing an LLM that operates on untrusted input — remains an open research challenge, not a shipped fix.

Q: How should engineering teams reduce exposure to this class of attack? A: Treat every model input as untrusted, scope agent capabilities to the narrowest possible set of actions, and never rely on a UI-level approval toggle to gate code execution. Administrators of Google Workspace can also control the extension through Workspace settings > Permissions & roles > ChatGPT for Excel and Google Sheets, per PromptArmor’s guidance.

Key Takeaways

  • Audit every AI extension your team has installed and identify which ones can execute scripts or call external endpoints — those are the surfaces most likely to harbor the next prompt-injection disclosure.
  • Stop trusting “require approval” toggles at face value; verify in testing which specific capabilities they actually gate, because PromptArmor showed the Google Sheets toggle did not cover script execution.
  • Build internal disclosure playbooks that assume vendor silence; if your business depends on an AI feature, you need a contingency that doesn’t require the vendor to answer email within 14 days.
  • Push vendors to document model capabilities and threat models the way they document API rate limits — and make it a procurement gate, similar to how teams already evaluate where blockchain audit trails outperform traditional databases for high-trust workflows.
  • Expect copycat research: now that the pattern is public, every agentic LLM extension touching sheets, docs, email, or code repositories is on the clock for a similar disclosure.

Have a project in mind?

Tell us what you're building — we reply within 24 hours.