Structured data rendered for: graph
Back to Blog

GPUStack CVE-2026-102895 Turns Trusted Local Requests Into Unauthenticated Admin Access

Published
Updated
4 min read
GPUStack CVE-2026-102895 Turns Trusted Local Requests Into Unauthenticated Admin Access

GPUStack CVE-2026-102895 Turns Trusted Local Requests Into Unauthenticated Admin Access

An actively exploited GPUStack vulnerability lets remote requests impersonate localhost and receive the built-in administrator identity. Tracked as CVE-2026-102895, the flaw affects GPUStack versions before 2.2.0 and is especially dangerous when an AI model-serving control plane is exposed through a reverse proxy or public edge.

Why this AI infrastructure flaw matters

GPUStack coordinates models, inference backends, users, and GPU workers. Its authentication logic trusted a request that appeared to originate from loopback when force_auth_localhost was disabled, which was the default in affected versions. A remote attacker could influence that source decision through a same-host reverse proxy or a supplied X-GPUStack-Real-IP header.

That turns a network-trust assumption into an authentication bypass. The attacker does not need a valid GPUStack account to reach administrative functionality. From there, an intruder may create administrator API keys, alter inference backends, access cloud credentials available to the service, or use model-worker operations as a path to further execution.

CISA added the CVE to its Known Exploited Vulnerabilities catalog on November 9, with a federal remediation deadline of November 12. The immediate action is therefore not to wait for a public proof of concept or a higher severity score: inventory GPUStack, patch it, and verify whether the control plane was reachable from untrusted networks.

The trust boundary that failed

The vulnerable path was built around an apparently convenient rule: requests from localhost could be treated as coming from a trusted administrator. That can be reasonable only when the application has a reliable, non-spoofable view of the client connection.

In common deployments, a reverse proxy forwards traffic to GPUStack over loopback. The application then sees the proxy’s local connection rather than the original remote client. The vulnerable logic could also accept a client-controlled X-GPUStack-Real-IP value and use it to classify the request as local.

The result was a mismatch between the network layer and the authentication layer. A request arriving through an internet-facing proxy could be treated as a local administrator request even though the original client was remote and unauthenticated.

This is a useful security pattern to recognize beyond GPUStack: proxy headers are routing metadata, not proof of identity. If an application uses them to make authentication decisions, the edge must strip client-supplied values and insert trusted values only after the connection path is controlled.

What changed in the fix

GPUStack 2.2.0 removed the implicit loopback-based administrator path and hardened client-IP and forwarding-header handling. The GitHub security advisory also identifies force_auth_localhost=true as a workaround, but that should be treated as a containment measure while upgrading, not a substitute for the fixed release.

Administrators should ensure that:

  • GPUStack is upgraded to 2.2.0 or later.
  • The API is not directly exposed to the internet or untrusted network segments.
  • Reverse proxies strip incoming X-GPUStack-Real-IP headers before adding a trusted value.
  • Edge authentication and network policy do not rely on GPUStack’s local-request shortcut.
  • Cloud credentials and worker permissions available to GPUStack follow least privilege.

The last point matters because AI infrastructure often sits close to valuable assets: object storage, model registries, container runtimes, orchestration APIs, and cloud identity. A control-plane authentication bypass can become a broader cloud or workload compromise when those permissions are excessive.

Hunt before you close the window

Patching removes the vulnerable code path, but it does not tell you whether an attacker used it. Teams should preserve and review reverse-proxy, load-balancer, GPUStack, container, and cloud-audit logs around the exposure period.

Prioritize these questions:

  1. Was the GPUStack API reachable from the public internet, a shared network, a VPN, or a developer workstation segment?
  2. Did requests include X-GPUStack-Real-IP values that were inconsistent with the real connection source?
  3. Were administrator API keys created, rotated, or used unexpectedly?
  4. Did an unknown user modify inference backends, model sources, worker settings, or scheduling configuration?
  5. Did GPUStack access cloud credentials, registries, storage, or worker hosts at unusual times?

If the answers suggest unauthorized access, follow the organization’s incident response process. Revoke and reissue GPUStack tokens, rotate cloud credentials exposed to the service, review worker and container activity, and check whether model or backend configuration was altered. Do not treat a version upgrade alone as proof that an account or environment is clean.

The broader lesson for AI platforms

GPUStack is a timely example of why AI control planes deserve the same defensive attention as identity, CI/CD, and cloud management systems. They may not look like traditional perimeter appliances, but they can administer workloads and hold credentials with meaningful reach.

The practical baseline is straightforward: keep the API behind a controlled management boundary, authenticate at the edge, reject client-controlled identity headers, minimize service permissions, and log administrative actions in a place the application cannot rewrite.

Bottom line

CVE-2026-102895 is not merely a local-authentication edge case. In the wrong deployment, a remote request can cross the proxy boundary and emerge as an unauthenticated GPUStack administrator. Upgrade to 2.2.0 or later, isolate the API, strip spoofable headers, and investigate keys, backend changes, and cloud access before declaring the incident closed.

Sources

References

  1. GPUStack GitHub security advisory for CVE-2026-102895
  2. GPUStack 2.2.0 release
  3. CISA Known Exploited Vulnerabilities Catalog: CVE-2026-102895

FAQ

How to cite

Lucas Oliveira. GPUStack CVE-2026-102895 Turns Trusted Local Requests Into Unauthenticated Admin Access. 12 Nov 2026. Invaders Cybersecurity. https://invaders.ie/resources/blog/vulnerability/gpustack-cve-2026-102895-unauthenticated-admin-access.

Subscribe via RSS.

Written by

Lucas Oliveira

Research

A DevOps engineer and cybersecurity enthusiast with a passion for uncovering the latest in zero-day exploits, automation, and emerging tech. I write to share real-world insights from the trenches of IT and security, aiming to make complex topics more accessible and actionable. Whether I’m building tools, tracking threat actors, or experimenting with AI workflows, I’m always exploring new ways to stay one step ahead in today’s fast-moving digital landscape.