{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-102894","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","state":"PUBLISHED","assignerShortName":"GitHub_M","dateReserved":"2026-09-29T17:34:42.743Z","datePublished":"2026-11-04T21:18:29.009Z","dateUpdated":"2026-11-04T21:18:29.009Z"},"containers":{"cna":{"title":"GPUStack: SAML callback trusts an unverified SAMLResponse, allowing authentication bypass and account takeover","problemTypes":[{"descriptions":[{"cweId":"CWE-294","lang":"en","description":"CWE-294: Authentication Bypass by Capture-replay","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-347","lang":"en","description":"CWE-347: Improper Verification of Cryptographic Signature","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":9.1,"baseSeverity":"CRITICAL","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","version":"3.1"}}],"references":[{"name":"https://github.com/gpustack/gpustack/security/advisories/GHSA-62m9-f875-rqw6","tags":["x_refsource_CONFIRM"],"url":"https://github.com/gpustack/gpustack/security/advisories/GHSA-62m9-f875-rqw6"},{"name":"https://github.com/gpustack/gpustack/pull/5753","tags":["x_refsource_MISC"],"url":"https://github.com/gpustack/gpustack/pull/5753"},{"name":"https://github.com/gpustack/gpustack/pull/5923","tags":["x_refsource_MISC"],"url":"https://github.com/gpustack/gpustack/pull/5923"},{"name":"https://github.com/gpustack/gpustack/commit/705edbe1b5feec63959306daecd640e1c70eced2","tags":["x_refsource_MISC"],"url":"https://github.com/gpustack/gpustack/commit/705edbe1b5feec63959306daecd640e1c70eced2"},{"name":"https://github.com/gpustack/gpustack/commit/adc6d82be34e48390720a1361df616e2ea9d6d45","tags":["x_refsource_MISC"],"url":"https://github.com/gpustack/gpustack/commit/adc6d82be34e48390720a1361df616e2ea9d6d45"},{"name":"https://github.com/gpustack/gpustack/releases/tag/v2.2.2","tags":["x_refsource_MISC"],"url":"https://github.com/gpustack/gpustack/releases/tag/v2.2.2"}],"affected":[{"vendor":"gpustack","product":"gpustack","versions":[{"version":">= 0.7.1, < 2.2.2","status":"affected"}]}],"providerMetadata":{"orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M","dateUpdated":"2026-11-04T21:18:29.009Z"},"descriptions":[{"lang":"en","value":"GPUStack is an open-source GPU cluster manager for AI model serving and GPU instance provisioning. From 0.7.1 until 2.2.2, the /auth/saml/callback endpoint decoded SAML XML, used its NameID and attributes to resolve or provision a user, and minted a gpustack_session JWT without calling OneLogin_Saml2_Auth.process_response to verify the signature, issuer, audience, destination, or time conditions. Any network client could submit an identity for an existing user, including an administrator, or provision a new non-administrator account, even when SAML was not configured. Response and Assertion identifiers were not consumed, so captured signed responses could also be replayed. This issue is fixed in version 2.2.2."}],"source":{"advisory":"GHSA-62m9-f875-rqw6","discovery":"UNKNOWN"}}}}