glances

CVE-2026-46608

CVE-2026-46608 is a high-severity security vulnerability in glances (pip), affecting versions < 4.5.5. It is fixed in 4.5.5.

Key facts
CVSS score
7.4
High
Attack vector
Network
Issuing authority
GitHub Advisory Database
Affected package
glances
Fixed in
4.5.5
Disclosed
2026

Summary

Summary The Glances XML-RPC server (glances -s) introduced a configurable CORS origin list in version 4.5.3 as a mitigation for CVE 2026-33533. However, the implementation silently falls back to Access-Control-Allow-Origin: whenever corsorigins contains more than one entry. An operator who configures an explicit two-entry allowlist (e.g. two internal dashboard origins) intending to restrict browser access instead receives the unrestricted wildcard, the same exposure that the original CVE described. A malicious web page served from any origin can issue a CORS simple request to /RPC2 and read the full system monitoring dataset without the victim's knowledge. Details Affected file: glances/server.py, class GlancesXMLRPCServer, line 113 Direct URL (commit 04579778e733d705898a169e049dc84772c852da): https://github.com/nicolargo/glances/blob/04579778e733d705898a169e049dc84772c852da/glances/server.py#L113 The corsorigin value is then echoed back as the Access-Control-Allow-Origin response header for every request (line ~147 in the same file): This means the CORS header is determined once at server startup and never compared against the actual Origin header sent by the browser. Even if an operator sets: the server responds with Access-Control-Allow-Origin: to every request, including those from https://attacker.example.com. Single-origin wildcard (the default, corsorigins = ) is also still in effect; the fix only helps if exactly one non-wildcard origin is configured. Confirmed on: x8664 Linux, Python 3.13, Glances 4.5.5dev1 (commit 04579778e733d705898a169e049dc84772c852da). Test results: | Origin sent | ACAO header returned | Expected | |--------------------------|----------------------|--------------| | http://evil.example.com| | No header | | https://dashboard.corp | | Reflected | | https://grafana.corp | | Reflected | PoC Special configuration required The multi-origin collapse is only triggered when corsorigins contains two or more entries. Create the following glances.conf: Step 1, Start the XML-RPC server using the config above Step 2, Send a CORS simple request from a foreign origin Expected (secure) response: or no Access-Control-Allow-Origin header. Actual response: Step 3, Demonstrate the code-level collapse to wildcard Browser-based exploitation Once the wildcard is confirmed, the original CVE-2026-33533 attack vector still applies in full. A malicious page served to a victim whose browser can reach the Glances server can exfiltrate data as follows: This works as a CORS "simple request" (POST + text/plain), no CORS preflight is triggered and the wildcard allows the browser to read the response. Impact Vulnerability type: CORS Misconfiguration / Bypass of CVE-2026-33533 mitigation (CWE-942) Who is impacted: Any operator who: Runs Glances in XML-RPC server mode (glances -s), and Has configured two or more corsorigins entries in glances.conf believing they are restricting browser access. Operators using the default single-wildcard configuration (corsorigins = , which is the upstream default) remain affected by the original CVE-2026-33533 exposure (unrestricted cross-origin read). The incomplete fix addresses only the narrow case of a single non-wildcard origin. Data exposed through the XML-RPC API includes: hostname, OS and kernel version, full process list with command-line arguments (frequently containing API keys, passwords, and tokens), CPU/memory/disk/network statistics, listening ports, and Docker/Kubernetes container metadata. Impact: Confidentiality: High, complete system monitoring data readable by any browser page. Integrity: None, read-only API. Availability: None, no denial-of-service component. Suggested Fix Implement per-request origin reflection against the configured allowlist, as recommended by the W3C CORS specification and as done by modern CORS middleware (e.g. Starlette's CORSMiddleware): Additionally, consider retiring the legacy XML-RPC server in favour of the REST API (glances -w), which uses Starlette's CORSMiddleware correctly, and document the deprecation path. Responsible Disclosure The AFINE Team is committed to responsible / coordinated disclosure. The AFINE Team will not publish details of this vulnerability or release exploit code publicly until a fix has been released, or 90 days have elapsed from the date of this report, whichever comes first. Credits This issue was identified by Michał Majchrowicz and Marcin Wyczechowski, members of the AFINE Team.

Impact

Severity and exposure

CVE-2026-46608 has a CVSS score of 7.4 (High). The vector is network-reachable, no privileges required, and user interaction required. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment.

A fixed version is available (4.5.5). Upgrading removes the vulnerable code path.

Affected versions

pip

  • glances (< 4.5.5)

Security releases

  • glances → 4.5.5 (pip)
Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter instead of chasing every advisory.

Kodem's runtime-powered SCA identifies whether CVE-2026-46608 is reachable in your applications. Explore open-source security for your team.

See if CVE-2026-46608 is reachable in your applications. Get a demo

Already deployed Kodem? See CVE-2026-46608 in your environment

Remediation advice

Upgrade glances to 4.5.5 or later to resolve this vulnerability.

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently asked questions about CVE-2026-46608

What is CVE-2026-46608?

CVE-2026-46608 is a high-severity security vulnerability in glances (pip), affecting versions < 4.5.5. It is fixed in 4.5.5.

How severe is CVE-2026-46608?

CVE-2026-46608 has a CVSS score of 7.4 (High). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.

Which versions of glances are affected by CVE-2026-46608?

glances (pip) versions < 4.5.5 is affected.

Is there a fix for CVE-2026-46608?

Yes. CVE-2026-46608 is fixed in 4.5.5. Upgrade to this version or later.

Is CVE-2026-46608 exploitable, and should I be worried?

Whether CVE-2026-46608 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo

What actually determines whether CVE-2026-46608 is exploitable, and how bad it is?

Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.

How do I fix CVE-2026-46608?

Upgrade glances to 4.5.5 or later.

Stop the waste.
Protect your environment with Kodem.