CVE-2026-68517: Glances REST API CORS credentials bypass via wildcard in multi-origin list

CVE-2026-68517 · Severity: medium · CVSS 6.5 · Published 2026-08-17

Glances is a real-time system monitoring tool that exposes a REST API for remote access to performance data and process lists. A flaw in its cross-origin (CORS) security check allows attackers to bypass authentication credential protections when a configuration includes both a wildcard and specific trusted origins. An attacker can trick a victim's browser into making cross-origin requests to the Glances API and steal sensitive monitoring data, including process command lines (which may contain secrets), usernames, and PIDs.

Technologies: glances (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-68517 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-68517 being exploited in the wild.
How severe is CVE-2026-68517?
Medium severity, with a CVSS score of 6.5, published 17 August 2026.
Which products and versions are affected?
glances (PyPI) < 4.5.6, ECOSYSTEM:introduced=0,fixed=4.5.6.
Is there a fix for CVE-2026-68517?
Yes. glances (PyPI): upgrade to 4.5.6 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-68517 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-68517?
Check whether you run glances (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • glances (PyPI): upgrade to 4.5.6 or later
    pip install "glances>=4.5.6"

Technical details

The vulnerability is a logic error in the CORS credentials guard at glances/outputs/glances_restful_api.py:298. The code checks `if cors_origins == ["*"] and cors_credentials:` using exact list equality, but Starlette's underlying CORSMiddleware determines wildcard behavior via membership test (`"*" in allow_origins`). When an operator configures cors_origins as a multi-entry list containing "*" (e.g., ["*", "https://trusted.example.com"]), the Glances guard fails to trigger (because the list is not exactly ["*"]), but Starlette still treats it as "allow all origins" and reflects the request's Origin header together with Access-Control-Allow-Credentials: true. An unauthenticated attacker can then craft a malicious webpage that, when visited by a victim who has previously logged into Glances via their browser, automatically sends cross-origin API requests that include the victim's cached HTTP Basic Auth credentials. This exposes the full authenticated monitoring dataset including process lists with command-line arguments. The fix is to change the check from exact equality to membership test: `if "*" in cors_origins and cors_credentials:`, matching the corrected pattern already deployed in the sibling XML-RPC server. Patch version 4.5.6 is available.

Affected products

  • nicolargo Glances < 4.5.6

Identifiers

  • CVE-2026-68517
  • GHSA-fp27-88fp-2phg
  • PYSEC-2026-3667

Timeline

  • 2026-08-17: disclosed: Published in GitHub Advisory Database
  • 2026-08-01: patched: Fix released in version 4.5.6

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.