Independent AI intelligence Two editions daily · ET
Fervor AI

Analysis · November 12, 2026 · concept

United AirlinesCloudflarePersonal AI agentsagent-identityagent-securityprivacy

United Banned AI Agents From Booking Flights. The Real Target Is Your Password.

The airline didn't ban AI. It banned an agent that holds your login, and that changes how anyone building agents should handle credentials.

Booking a flight is the demo every AI agent company reaches for. Type "get me to Denver on Friday, aisle seat, under $400," and watch a browser fill itself in. It is the canonical proof that agents can do real errands.

On November 11, one of the biggest airlines in the world said no to that demo.

United Airlines announced it is banning personal AI agents from making flight reservations on behalf of travelers, according to CBS News. The story pulled hundreds of comments on Hacker News within a day, many of them arguing about whether an airline can or should stop software from clicking buttons for you.

Read United's statement closely, though, and it says something narrower and more useful than "no robots allowed." The problem it names is the password. That distinction is the whole lesson for anyone building agents, and it is why this ban will not be the last.

What United actually said

United's statement, as quoted by CBS, gives three reasons.

The first is credentials: "sharing account credentials with personal, third-party, AI assistants can expose sensitive information." The second is consequences: "actions taken by these tools may result in unintended purchases, account changes, or use of MileagePlus miles." The third is regulatory. United argues an agent checking someone in could break federal rules that require the traveler to confirm, personally, that their bag holds no banned items.

Then the enforcement line. United says it is "taking steps to restrict access, directly within our digital platforms and indirectly via travel agencies and aggregators," to "unauthorized, third-party personal AI agents or assistants."

Notice what is missing. United fares stay searchable on Kayak, Hopper and Google Flights, per CBS. Nobody is stopping an AI from finding a flight. The ban covers unauthorized personal agents acting for a traveler, and the risk United names first is the pattern most of those agents rely on: signing into your United account, with your password, and acting as if it were you.

Two more things are missing from the CBS report, and they matter for the rest of this piece: an effective date and any description of how enforcement works. More on that in the limitations.

Why "logging in as you" is the actual problem

Here is the plain-language version of what happens when an agent books a flight today.

You hand the agent your username and password (or it rides along in a browser session where you are already signed in). The agent opens United's site and does what you would do. From United's side, the requests look like you. Same account, same saved card, same miles balance.

Think of it as the difference between a house key and a valet key. A valet key starts the car and nothing else; it won't open the trunk or the glove box. A house key opens everything, and the house can't tell whether you or your new assistant turned it.

Today's personal agents mostly carry house keys.

That creates three problems United can't solve from its side of the counter:

  • It can't tell who is acting. If an agent spends 80,000 miles on the wrong trip, was that the customer, the agent, or someone who stole the agent's session? The account history looks the same.
  • It can't limit what the agent does. A login is all-or-nothing. There is no setting that says "this agent may search and hold a fare, but may not spend miles or change my email address."
  • It inherits the support bill. When the agent gets it wrong, the customer calls the airline, not the agent company.

Cloudflare, the network company that runs bot protection for many websites, described the same tension in a November 5 post on what it calls trusted agent delegation. Its summary of the site's position is blunt: "In nearly every challenge above, the Site bears the primary cost." The post's list of harms reads like United's statement in longer form: account sharing, friendly fraud (customers disputing charges they did make), identity spoofing, broken risk checks (the fraud scoring that decides when to ask you for a code), and lost visibility into who the real user is.

So the useful way to read the United ban is this: an agent that borrows your identity has no identity of its own, so the only safe answer a site can give it is no.

That is the shift. The question used to be "can the agent click through the site?" Now it is "will the site let this agent in, and on what terms?"

The sites are getting tools to answer that question

United is not acting in a vacuum. The infrastructure for sites to see and sort agent traffic shipped in the same fortnight.

On November 4, Cloudflare announced new visibility and controls for personal agents. Site owners get a "Personal Assistants" category in their bot analytics, alongside the old human and automated buckets, showing which agents visit and what they request. For supported personal agents, they can set a policy per agent: allow it, block it on pages that carry ads, or block it outright. An early-access product, Account Abuse Protection, flags whether a login or sign-up came from a personal agent, so a fraud team can act on one abused account without banning that agent for everyone.

That changes the economics. A year ago a site that disliked agents had to play whack-a-mole with browser fingerprints. Now, for sites behind Cloudflare, it is a dropdown.

The pressure is not only commercial. On November 10, Australia announced plans for an AI safety regulator after an OpenAI agent accessed a government statistics portal holding Medicare data, The Next Web reported. The government says no personal details were taken. It still called the incident "completely unacceptable" and wants mandatory incident reporting. Different setting, same root: an agent ended up somewhere with more access than anyone meant to give it.

Put those together and the direction is clear. Agents that look like a person, act with a person's full login, and leave no trace of being an agent are going to meet more closed doors.

Put this into practice

If you build agents, or wire them into your own workflows, here is what to change this week. None of it requires waiting for a standard.

1. Find every place your agent holds a human's login

Make a list. Every tool, script or browser profile where the agent uses a person's password, session cookie or saved card. Include the ones that "just reuse my Chrome profile." Those count.

For each one, write down the worst thing the agent could do with that access. For an airline account, that's spending miles and changing contact details. For email, it's sending as you. This list is your actual risk surface, and most people have never written it down.

2. Use the official channel where one exists

United's own example points the way: fares still show up through aggregators and Google Flights. If the job is "find options," search through a public API or an aggregator and let the human complete the purchase. If the site offers an API with scoped tokens (the valet key from earlier, where a token grants specific permissions you can revoke), use it instead of a password, even if it is less convenient. You have seen this pattern every time you connect an app to your Google account and the screen lists exactly what it may read and what it may not touch.

3. Keep secrets away from the model

If an agent must sign in somewhere, the model should never see the password. Tools now exist that fill credentials in at the browser level without passing them through the model's context. n8n's new open-source personal agent, Nod, describes a vault that enters passwords, codes and cards without exposing them to the model, and says policy "lives in the server, not the prompt." That pattern matters because a model that has seen your password can leak it in a log, a transcript, or a prompt injection.

4. Put a human checkpoint in front of anything you can't undo

Purchases, point redemptions, account changes and cancellations should stop and ask. A minimal version is a few lines wrapped around your agent's tools:

IRREVERSIBLE = {"purchase", "redeem_points", "change_account", "cancel_booking"}

def run_tool(name, args, ask_human):
    if name in IRREVERSIBLE:
        if not ask_human(f"Agent wants to {name} with {args}. Approve?"):
            return {"status": "declined_by_user"}
    return TOOLS[name](**args)

This is the exact class of action United lists ("unintended purchases, account changes, or use of MileagePlus miles"). If your agent can't make those moves without a person saying yes, most of United's stated risk goes away, even if the site never knows it.

5. Let your agent say what it is

Don't dress agent traffic up as a regular browser to slip past bot detection. That works until the site notices, and then it blocks everyone using your product. Cloudflare's delegation post points toward signed agent requests (Web Bot Auth, where the agent signs each request so a site can check which agent sent it) and graduated disclosure, where an agent reveals only as much about its user as a site needs. Those are still proposals, but an agent that identifies itself honestly is the only kind a site can choose to allow.

6. If you run a site, decide instead of blanket-blocking

If you are on the other side of the counter, look at which agents already visit before writing a ban. Cloudflare's per-agent policies let you allow an agent you trust and block one you don't. A total block costs you the customers who sent the agent.

Honest limitations

A few things in this story are softer than the headlines suggest.

United has published a policy, not a mechanism. CBS reports no effective date and no description of how United will detect or stop agents. A statement that says "we are taking steps" can mean anything from a terms-of-service line to aggressive bot blocking. Until United publishes more, nobody outside the company knows how hard this ban bites.

The better alternative mostly doesn't exist yet for consumers. Telling builders to "use scoped access" assumes the site offers it. Most airline, bank and retail accounts have no consumer-grade way to hand an agent a limited, revocable pass. For those sites, the honest options today are a human-completed purchase or no agent at all.

The delegation standards are early. Cloudflare's trusted agent delegation work is largely a problem statement plus a coalition it is launching with industry and the IETF. Web Bot Auth and machine-readable site policies are not things you can assume every site checks.

The Australia case rests on reporting. The details of the OpenAI agent's access come from The Next Web's account of the government's statements, and the regulator is a plan, not law.

Self-reported safety numbers. Nod is a research preview, and the safety figures in its README come from its own simulated runs. Its README also says model providers still receive the data a task needs, and app connections go through an n8n-hosted service by default. Treat it as an example of the vault pattern, not proof that the pattern is solved.

Where this leaves you

The flight-booking demo isn't dead. The version that works by impersonating you is.

Agents will keep booking travel, paying bills and filling forms. The ones that keep access will carry their own name, a limited set of permissions, and a human checkpoint before anything that costs money. That's more work than pasting a password into a prompt. It's also the only version a site can say yes to.

Pick one agent you run today. Open its config and find where it holds a real login. That is the first door that is going to close.

Sources: CBS News on United's ban (Nov 11, 2026); Hacker News discussion; Cloudflare, "Agents aren't humans (but they kinda are)" (Nov 5, 2026); Cloudflare, "See the agents, set the terms" (Nov 4, 2026); The Next Web on Australia's AI safety regulator (Nov 10, 2026); n8n-io/nod README (main branch, read Nov 12, 2026, the day release tag nod-v0.7.0 appeared in its release feed).