← Tools I Use

Hackers took over Instagram accounts by just asking Meta's AI. The lesson is about authorization, not AI.

2026-06-02 · ~6 min read · Conor Dobbs

The story that broke on June 1, 2026 reads like a joke until you sit with it. According to 404 Media's reporting, attackers took over high-profile Instagram accounts not by cracking a password or phishing a token, but by opening a chat with Meta's AI support bot and asking it to change the email address on an account. The bot did it. No password, no real ownership proof, in some cases right past two-factor authentication.

It is being covered everywhere as an "AI hack," and I understand why. But I have built enough internal tooling to tell you the model is the least interesting part of this. The model did exactly what a junior support agent with too much access and not enough skepticism would do. The actual failure is one every team wiring an LLM into their stack is about to walk into, and it has a boring, fixable name: missing authorization.

What actually happened

The mechanics, pieced together from Simon Willison's writeup and Bitdefender's coverage, are almost mundane. An attacker matched the target's rough geographic region with a VPN, opened the AI-powered support flow, and asked it to change the linked email on the account to one they controlled. With the email changed, a password reset follows trivially, and in some reported cases the flow sidestepped the 2FA that was supposed to be the last line of defense. Futurism noted that access to compromised high-profile accounts was then being resold for small amounts of money, and that the hole had reportedly been open for months before it was widely reported.

Notice what is missing from that chain: at no point did the system require proof that the person in the chat owned the account. Geographic proximity is not identity. A confident request is not authorization. The bot treated "the user asked nicely and seems to be in the right country" as sufficient grounds to perform an irreversible, security-critical change.

The model was not "tricked." It was obeyed.

The framing I keep pushing back on is that the AI was "tricked" or "jailbroken." Prompt injection is a real and separate problem — I wrote about a cleaner example of that in the ChatGPT-in-Sheets prompt injection case, where hidden instructions in data hijacked the model's behavior. This Meta case is not that. Nobody had to smuggle a malicious instruction past the model. They used the front door. They asked for a thing the agent was apparently allowed to do, and it did it.

That distinction matters because it changes the fix. If the problem were jailbreaking, you would harden the prompt, add classifiers, fine-tune for refusals — the whole arms race I am skeptical of in my take on AI-security hype versus reality. But you cannot prompt your way out of an authorization gap. If the agent has the literal capability to change any account's email, then sooner or later someone will simply request that capability, politely, and no amount of "be careful" in the system prompt is a substitute for a permission check the agent physically cannot bypass.

The actual lesson for anyone building with agents

Over the last year a lot of teams, mine included, have started handing LLMs real tools: send an email, refund an order, open a PR, hit an internal API, mutate a record. The productivity is genuine. But every one of those tool calls is a privileged action, and the Meta incident is the clearest possible demonstration of what happens when you put a privileged action behind a system that is, by design, eager to be helpful.

Here is the checklist I now run before letting any agent touch a tool that changes state:

Why this is going to keep happening

The uncomfortable part is that none of these guardrails are novel. They are the same access-control principles we have applied to human support staff and API clients for decades. What is new is the temptation to skip them because the agent feels smart enough to be trusted. It is not. Competence at language is not judgment about authority, and the more capable these systems get at sounding reasonable, the more dangerous it is to let "it sounded reasonable" stand in for a permission model.

If you are shipping anything that lets an LLM take real actions, treat the Meta story as a free penetration test of an architecture you might already be building. The fix is not a better model or a cleverer prompt. It is the unglamorous work of putting a real authorization layer between the agent's enthusiasm and anything it can actually break — and watching, in your own logs, what it tries to do.

Sources