Critical GPUStack Authentication Bypass (CVE-2026-102895) Exploited in Wild for Reverse Shells on AI Servers
Attackers are actively exploiting a critical authentication bypass in GPUStack, an open-source tool used to manage GPU clusters for AI workloads. Tracked as CVE-2026-102895 (CVSS 9.8), the flaw allows unauthenticated attackers to gain full admin access by spoofing a loopback IP address, either through a same-host reverse proxy or a forged X-GPUStack-Real-IP header. The vendor confirmed exploitation in the wild against a v2.1.1 deployment, with attackers deploying custom backends to run reverse shells on worker hosts. A second, related flaw, CVE-2026-102894 (CVSS 9.1), affects the SAML login callback and allows session hijacking via forged XML assertions, though no active exploitation has been confirmed for this bug yet.
Entenda a falha
A vulnerabilidade
CVE-2026-102895 (CVSS 9.8) is an authentication bypass in GPUStack, an open-source GPU cluster manager for AI workloads. With force_auth_localhost off (the default), the login logic grants built-in admin rights to any request that appears to come from loopback. An unauthenticated remote attacker gets full admin access, either through a same-host reverse proxy or a forged X-GPUStack-Real-IP header. It affects all versions before 2.2.0. CVE-2026-102894 (CVSS 9.1) is a SAML login callback flaw that allows session hijacking with forged assertions, affecting 0.7.1 up to before 2.2.2. Upgrading to 2.2.2 fixes both.
Como funciona
For CVE-2026-102895, a request reaches the login logic, which checks the source IP to decide whether it is local. If the address is loopback, the server treats the caller as the built-in admin with no password. Behind a same-host reverse proxy, every external request reaches GPUStack with a 127.0.0.1 peer address, so the rule fires for everyone. The same result comes from a request carrying a forged real-IP header. For CVE-2026-102894, the /auth/saml/callback route receives Base64 XML, reads the username and issues a login token immediately, without running the signature, sender or timestamp checks.
Por que é vulnerável
CVE-2026-102895 is an origin validation failure (CWE-346) and IP spoofing weakness (CWE-290): the server trusts a loopback source address, and a client-supplied header, as proof of a local caller, and the unsafe default leaves force_auth_localhost off. CVE-2026-102894 is a missing signature verification flaw (CWE-347): the code never calls the function that validates the assertion. The route is enabled by default even without SAML configured, and used message IDs are not tracked, so replay is possible (CWE-294). Version 2.2.0 removed the loopback auto-admin rule and tightened IP header checks; 2.2.2 added SAML signature verification and disabled unused login routes.
Onde está
CVE-2026-102894 is in the /auth/saml/callback endpoint (advisory GHSA-62m9-f875-rqw6); CVE-2026-102895 is in the GPUStack login logic and the force_auth_localhost setting, with no file or function named.
Como foi descoberta
Researcher Javier Sixto of ulex.fr reported exploitation of CVE-2026-102895 in the wild, and the vendor advisory says it was observed against a v2.1.1 deployment, where attackers used custom backends to run reverse shells. Nikko Enggaliano, Wei Yunzhou, Rui Yang and Haoyu Wang also reported this bug. CVE-2026-102894 was reported by UC Berkeley researchers Austin Chu, Sohee Kim and Corban Villa, and no exploitation in the wild is confirmed for it. Both were disclosed through vendor advisories.
PoC existente, privada
O exploit existe, mas quem o tem não o publicou.
For CVE-2026-102894, the UC Berkeley researchers shared a private exploit tool with the developers; it was not published. For CVE-2026-102895, attacks have been seen in the wild with reverse shells, but no published exploit is mentioned. Because exploitation is already active, patching 2.2.0 or later (ideally 2.2.2) is urgent.
Explicação gerada por IA a partir da matéria e dos artigos, em 05/11/2026 00:15.
Detalhes técnicos
CVE-2026-102895 stems from CWE-346 (origin validation failure) and CWE-290 (IP spoofing) in the login logic. With force_auth_localhost disabled by default, the server grants built-in admin rights to any request appearing to originate from 127.0.0.1, which can be trivially spoofed via a reverse proxy setup or a crafted header. Once authenticated, attackers can steal cloud credentials, mint admin tokens, and push malicious YAML configs to execute code on worker nodes. CVE-2026-102894 resides in the /auth/saml/callback endpoint (CWE-347), which decodes Base64 XML SAML assertions and issues login tokens without validating digital signatures, sender identity, or timestamps; the route is enabled by default even without SAML configured, and lacks replay protection (CWE-294), allowing captured assertions to be reused indefinitely. CVE-2026-102895 affects all GPUStack versions before 2.2.0; CVE-2026-102894 affects versions 0.7.1 through before 2.2.2.
Remediação
Administrators should upgrade to GPUStack 2.2.2 or later, which removes the loopback auto-admin rule, enforces strict IP header validation, and adds SAML signature verification while disabling unused login routes. If immediate patching is not possible, set force_auth_localhost=true, strip all X-GPUStack-Real-IP headers at the reverse proxy, and block external access to /auth/saml/callback at the firewall.
Linha do tempo
-
Critical GPUStack Authentication Bypass (CVE-2026-102895) Exploited in Wild for Reverse Shells on AI Servers
ler a análise desta fonte ocultar
Attackers are actively exploiting a critical authentication bypass in GPUStack, an open-source tool used to manage GPU clusters for AI workloads. Tracked as CVE-2026-102895 (CVSS 9.8), the flaw allows unauthenticated attackers to gain full admin access by spoofing a loopback IP address, either through a same-host reverse proxy or a forged X-GPUStack-Real-IP header. The vendor confirmed exploitation in the wild against a v2.1.1 deployment, with attackers deploying custom backends to run reverse shells on worker hosts. A second, related flaw, CVE-2026-102894 (CVSS 9.1), affects the SAML login callback and allows session hijacking via forged XML assertions, though no active exploitation has been confirmed for this bug yet.
Technical Details
CVE-2026-102895 stems from CWE-346 (origin validation failure) and CWE-290 (IP spoofing) in the login logic. With
force_auth_localhostdisabled by default, the server grants built-in admin rights to any request appearing to originate from 127.0.0.1, which can be trivially spoofed via a reverse proxy setup or a crafted header. Once authenticated, attackers can steal cloud credentials, mint admin tokens, and push malicious YAML configs to execute code on worker nodes. CVE-2026-102894 resides in the/auth/saml/callbackendpoint (CWE-347), which decodes Base64 XML SAML assertions and issues login tokens without validating digital signatures, sender identity, or timestamps; the route is enabled by default even without SAML configured, and lacks replay protection (CWE-294), allowing captured assertions to be reused indefinitely. CVE-2026-102895 affects all GPUStack versions before 2.2.0; CVE-2026-102894 affects versions 0.7.1 through before 2.2.2.Remediation
Administrators should upgrade to GPUStack 2.2.2 or later, which removes the loopback auto-admin rule, enforces strict IP header validation, and adds SAML signature verification while disabling unused login routes. If immediate patching is not possible, set
force_auth_localhost=true, strip allX-GPUStack-Real-IPheaders at the reverse proxy, and block external access to/auth/saml/callbackat the firewall.