{"affected":[{"product":"gpustack","source":"CNA: GitHub_M","vendor":"gpustack","versions":[{"status":"affected","version":"< 2.2.0"}]}],"cveId":"CVE-2026-102895","cwes":["CWE-287","CWE-290","CWE-346"],"description":"GPUStack is an open-source GPU cluster manager for AI model serving and GPU instance provisioning. Prior to 2.2.0, get_current_user in gpustack/api/auth.py treated a loopback request source as the built-in administrator when force_auth_localhost was false, which was the default. A remote request could appear to originate from 127.0.0.1 because client_ip_getter accepted a same-host reverse proxy peer or a client-supplied X-GPUStack-Real-IP loopback value. The bypass allowed unauthenticated administrative access, including user and model changes, persistent administrator API-key creation, disclosure of worker and cloud-provider secrets, and code execution through POST /v2/inference-backends/from-yaml. Exploitation was observed in the wild against a 2.1.1 deployment. This issue is fixed in version 2.2.0.","epss":{"date":"2026-11-05","percentile":0.26401,"score":0.00331},"exploits":[],"kev":null,"metrics":[{"score":9.8,"severity":"critical","source":"CNA: GitHub_M","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","version":"3.1"},{"score":9.8,"severity":"critical","source":"NVD: security-advisories@github.com","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}],"modifiedAt":1793942295290,"publishedAt":1793827019842,"references":[{"source":"CNA: GitHub_M","tags":["x_refsource_CONFIRM"],"url":"https://github.com/gpustack/gpustack/security/advisories/GHSA-gj9m-f8ph-pmhr"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/gpustack/gpustack/pull/5346"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/gpustack/gpustack/commit/53f42a6a553542974396d16a4ff6b12bcbedb48d"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/gpustack/gpustack/releases/tag/v2.2.0"},{"source":"security-advisories@github.com","tags":[],"url":"https://github.com/gpustack/gpustack/commit/53f42a6a553542974396d16a4ff6b12bcbedb48d"},{"source":"security-advisories@github.com","tags":[],"url":"https://github.com/gpustack/gpustack/pull/5346"},{"source":"security-advisories@github.com","tags":[],"url":"https://github.com/gpustack/gpustack/releases/tag/v2.2.0"},{"source":"security-advisories@github.com","tags":[],"url":"https://github.com/gpustack/gpustack/security/advisories/GHSA-gj9m-f8ph-pmhr"}],"remediation":[],"revision":"838c2f98a4200087266d7cb5d3e0dee3f7856a9134dcb8bac1ec34c2bdff26d5","sources":[{"modifiedAt":1793940999998,"name":"CNA: GitHub_M","retrievedAt":1793941699623,"url":"https://www.cve.org/CVERecord?id=CVE-2026-102895"},{"modifiedAt":1793942295290,"name":"NVD","retrievedAt":1793946330665,"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-102895"},{"modifiedAt":null,"name":"FIRST EPSS","retrievedAt":1793909553686,"url":"https://api.first.org/data/v1/epss?cve=CVE-2026-102895"}],"ssvc":{"assessedAt":1793836800000,"automatable":"yes","exploitation":"none","source":"ADP: CISA-ADP","technicalImpact":"total"},"status":"published","title":"GPUStack: Authentication bypass via trusted loopback source (reverse-proxy TCP peer or X-GPUStack-Real-IP header) grants unauthenticated admin","updatedAt":1793946330665}