All writing

AI Security Jun 2026 · 9 min read

Two Authentication Bypasses, One Bug Class: The VPN Edge and the AI Stack

A network VPN gateway and an AI inference server side by side, each waved through at the same trust boundary by a forged credential nobody checked

In the second week of June 2026, two critical vulnerabilities landed that look unrelated and are not. CVE-2026-50751 is an authentication bypass in Check Point’s remote-access VPN. CVE-2026-48710, nicknamed BadHost, is an authentication bypass in Starlette, the Python web framework sitting underneath a large share of today’s AI infrastructure. One is twenty-five-year-old network plumbing. The other is the newest layer of the AI stack. Both are the same bug, classified under the same weakness ID, and both fail for the same reason: the system trusted an attacker-controlled value to make a security decision.

I have spent seventeen years on the network side of that boundary, scoring IKE configurations and VPN certificate chains in audit after audit. Watching BadHost tear through the AI tooling world this month felt familiar to the point of discomfort, because it is the exact mistake I have written up against firewalls for years, relocated one stack higher. This post is the translation, from someone who has carried a clipboard on both sides of the line.

What broke on the network side

CVE-2026-50751 is a flaw in how Check Point’s Remote Access VPN and Mobile Access components validate certificates during the IKEv1 key exchange. The logic is wrong in a way that lets an unauthenticated attacker complete the exchange and open a VPN session without presenting valid credentials. It carries a CVSS score of 9.3, and CISA added it to its Known Exploited Vulnerabilities catalog on 9 June 2026 after Check Point traced exploitation back to early May, with at least one intrusion linked to a Qilin ransomware affiliate. The fix is a patch on supported builds and a version upgrade on the End-of-Support ones.

The detail that matters is not the certificate parsing. It is the trust decision. The gateway is supposed to ask one question at the boundary: has this party proven it is who it claims to be. The bug means the gateway accepts a proof it should have rejected. The attacker does not break the cryptography. The attacker hands over a value the gateway was too credulous to verify properly, and the gateway waves them in. I have written that finding, in different words, against more vendors than I can list. The appliance is just where it surfaced this time.

What broke on the AI side

BadHost is CVE-2026-48710, a host-header authentication bypass in Starlette, the ASGI framework with 325 million weekly downloads that underpins FastAPI and, through it, a large fraction of LLM inference servers, model proxies, and agent backends. The mechanism is almost insultingly small. Starlette did not validate the HTTP Host header against the URL grammar before using it to rebuild the request URL. A Host value containing a slash, question mark, or hash shifts where the path, query, and fragment boundaries fall when the request is re-parsed. Middleware then makes its access-control decision against a path that no longer matches the route the server actually runs.

Read that twice and it is the same shape as the VPN bug. A security gate, the path-based middleware, made an authorisation decision using a value the attacker controlled and the framework never validated. The route still executed. The gate was simply looking at the wrong thing. The exposure is worst for MCP servers, because the Model Context Protocol specification requires unauthenticated OAuth discovery endpoints, which hands an attacker a reliable place to aim. It was found by X41 D-Sec while auditing vLLM under an OSTIF grant, and fixed in Starlette 1.0.1, with a remediation window of roughly one day between the patched release reaching PyPI and public disclosure.

Why these are the same mistake

Both vulnerabilities are catalogued as CWE-287, improper authentication. That shared classification is not a filing coincidence. Strip each incident to the decision that caused it and they converge on one sentence: a security boundary trusted attacker-supplied input to decide who gets through. The IKEv1 exchange trusted a certificate it should have rejected. The Starlette middleware trusted a Host header it never checked against the grammar. The layer is different. The fault is identical.

Question at the boundaryNetwork edge (CVE-2026-50751)AI stack (BadHost / CVE-2026-48710)
What gate failed IKEv1 certificate validation in the VPN gateway Path-based access control in ASGI middleware
What it trusted A certificate it should have rejected An unvalidated, attacker-shaped Host header
What the attacker got A valid VPN session without credentials A request that skips the auth check but still runs
Why it is quiet No failed login: the session looks legitimate No error: the route returns normally
Weakness class CWE-287, improper authentication CWE-287, improper authentication

The new technology did not invent a new way to fail. It rediscovered the oldest one, that you must not let an unverified input decide a security question, and gave it a much larger blast radius. A VPN bug affects the gateways one vendor shipped. A flaw in a framework with 325 million weekly downloads affects an entire category of software at once.

The control the network world paid for: validate input at the trust boundary

Network security learned this lesson the expensive way, over two decades. We stopped trusting a packet because it arrived on the inside interface. We stopped trusting a device because it sat in the right VLAN. The entire discipline of input validation at a security boundary, sanitise it, canonicalise it, then decide, is the scar tissue from a thousand bypasses where a header, a hostname, or a source address was trusted without being checked. Zero trust is the same idea worn as a slogan: the value an attacker can set is never the value you authenticate against.

The AI tooling world is rebuilding that lesson live. BadHost is a textbook canonicalisation failure, the same class as the HTTP request-smuggling and host-header attacks that web security has documented for fifteen years, surfacing in a framework that became load-bearing for AI faster than its security model matured. I made this argument against the model layer specifically in the OWASP LLM Top 10 for 2026, where prompt injection is, at root, the same disease: untrusted input reaching a place that treats it as trusted instruction. Whether the untrusted input is a Host header or a paragraph of text, the fix starts in the same place.

The other half: an auth bypass is invisible by design

There is a second parallel that should worry anyone running detection. Neither of these attacks announces itself. The VPN bypass produces a session that looks like a clean login, so the authentication log stays green. The BadHost bypass produces a request that returns a normal response, so the access log shows a 200, not a 403. Both defeat the one signal most teams watch. That is not a coincidence either; an authentication bypass is, by definition, the absence of the failure you were waiting for.

So detection has to move off the auth log and onto behaviour and state. On the network, that means watching what a VPN session does against a baseline of normal, not just whether a login succeeded, which is the firewall discipline I keep returning to in my writing on AI-era threat detection for CISOs. In the AI stack it means the same instinct: log the authorisation decision and its inputs, not just the HTTP status, so a request that should have been refused but was not leaves a trace you can find later. If your only evidence of an intrusion is a failed attempt, a bypass leaves you with nothing.

What to actually do, this quarter

The translation is only worth anything if it changes Monday. Whether you run VPNs, AI services, or both, the list is short and unglamorous, which is the point.

Map this against any framework you answer to and it lands in the same controls: ISO 27001, NIS2, DORA, BSI IT-Grundschutz. They all demand validated trust boundaries and evidence of access decisions. The frameworks were right; we are applying them to a layer that did not exist when they were written. I covered the firewall side of this exact pattern last month in why the firewall CVE and the AI-agent breach are the same mistake, and the broader European picture in my note on AI security consulting.

Why a network background is the right lens for this

I did not come to AI security from machine learning. I came from PAN-OS, Check Point, Cisco and Fortinet, from IKE debugs and certificate chains and the unglamorous work of proving that a boundary actually holds. That order is an advantage here, because BadHost is not a novel AI problem. It is a canonicalisation-and-trust problem, the kind the network and web-security trades have been losing and re-learning for twenty years, surfacing in a new place. The people best equipped to see it coming are the ones who already paid for the lesson once. I put the same discipline to work measuring AI risk in from CVSS to ASR, and the Mittelstand readiness gap it opens up in why German SMEs are dangerously unprepared for NIS2.

The VPN and the inference server are the same boundary doing the same job: deciding who gets in. When that decision trusts a value the attacker controls, it fails the same way, whether the value is a forged certificate or a malformed header. You do not have to learn that the way the network world did, one breach at a time. You can borrow the answer, and I have shipped production AI under exactly this discipline, which I wrote up in the lessons from building RogueAI.


If you are running AI services and you are not sure which of them sit on the framework BadHost just broke, or whether your trust boundaries authenticate against values an attacker can set, that gap is reviewable now rather than after an incident. I run engagements that translate enterprise network-security discipline onto AI workloads: validated boundaries, least privilege, and evidence built to survive a real audit. Request a review. See also FwChange.com for firewall change automation and RogueAI for the production AI portfolio.

Not sure which of your AI services run the framework BadHost just broke?

Validated trust boundaries, least privilege and evidence, the network-security discipline, applied to your AI stack before an incident applies it for you.

Request an AI security review