Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover Glances web server port
-
DeliverySend unauthenticated GET /api/4/config/ip
-
ExploitReceive plaintext JSON response
-
ExecutionExtract public_username and public_api credentials
-
ImpactReuse credentials against target IP API service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two non-default conditions to be simultaneously true: (1) Glances must be running in web server mode without the --password authentication flag - this is the default for many deployments but is not the only deployment mode; and (2) the glances.conf [ip] section must contain either a public_api value with embedded URL credentials (scheme://user:pass@host/ format) or a public_username value. Without the [ip] section configured with these specific fields, the vulnerability yields no sensitive data. What limits exploitation further: the exposed credentials are specifically those used for the external IP API integration feature, not OS-level or Glances administrative credentials; the Glances web server port (default 61208) must be reachable from the attacker's location; and the attack yields only the credentials stored in that specific config section. Authentication (--password) fully prevents exploitation by routing the API response through the unredacted as_dict() path, which is only served to authenticated callers. |
| Impact | The overall real-world risk is moderate-to-low given the specific prerequisites required for exploitation. The CVSS 3.1 base score of 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N) accurately reflects that exploitation requires no authentication and no user interaction over the network, but the confidentiality impact is limited to partial credential disclosure rather than full system compromise. Critically, the vulnerability only materializes when Glances is deployed in web server mode without the --password flag AND the [ip] configuration section is populated with public_username or a credential-bearing public_api URL - neither condition is part of the default installation. No CISA KEV listing and no confirmed public exploit code exist at time of analysis, suggesting this has not been opportunistically mass-exploited. The CVSS network vector (AV:N/PR:N) is technically accurate for the attack path once preconditions are met, but those preconditions meaningfully limit the exposed population. Organizations running Glances in monitoring stacks that integrate with external IP geolocation APIs via authenticated URLs are the primary risk group and should treat patching as urgent. |
| Exploit ScenarioDerived | An attacker who discovers a Glances instance running in its default no-auth web server mode sends a simple unauthenticated HTTP GET request to /api/4/config/ip. If the target's glances.conf has an [ip] section with public_api=https://admin:secret123@ipv4.ipleak.net/json/ or a public_username=myname entry, the API returns those values in plaintext JSON, exposing the credentials. No exploit code is needed beyond a standard HTTP client such as curl. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 17, 2026
Credential disclosure in Glances prior to 4.5.6 allows unauthenticated remote attackers to retrieve plaintext usernames and credential-bearing URLs from the system monitoring tool's REST API. The flaw exists in as_dict_secure() within glances/config.py, which was designed to sanitize configuration data for no-auth API access but filters only on configuration key names - never on values. As a result, public_username and any public_api URL containing embedded credentials (e.g., https://user:pass@host/) are returned in full via GET /api/4/config and GET /api/4/config/ip. No public exploit or CISA KEV listing identified at time of analysis; the EPSS score is not provided but the low CVSS (5.3) and specific prerequisite configuration suggest limited opportunistic exploitation.
RemediationAI
The primary remediation is to upgrade Glances to version 4.5.6 or later, available via pip install --upgrade glances and the updated Docker image nicolargo/glances:latest. The patched release is confirmed at https://github.com/nicolargo/glances/releases/tag/v4.5.6 with the underlying fix in commit 8d0f8276c2abd2e9d400bd6c84bdfba0dfcab065. If immediate upgrading is not possible, two specific compensating controls apply: first, enable Glances password authentication (--password flag or username/password in glances.conf), which causes the API to serve the full unsanitized config only to authenticated users, eliminating the unauthenticated exposure path; second, remove or avoid embedding credentials directly in public_api URLs within the [ip] config section - use token-based or non-credential-bearing API endpoints where possible. The --password workaround has a trade-off: it requires all API consumers (dashboards, scripts) to be updated with credentials, which may break existing integrations.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Glances is a cross-platform system monitoring tool (CPE: cpe:2.3:a:nicolargo:glances:*:*:*:*:*:*:*:*) that exposes a RESTful API in web server mode. The vulnerability is rooted in CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor). The as_dict_secure() function in glances/config.py was purpose-built to produce a sanitized configuration dictionary safe for unauthenticated API consumption. Its implementation uses a regex (_SECURE_SENSITIVE_KEY_RE) to redact sensitive keys matching 'password|token|secret|api_key|apikey|ssl_keyfile', correctly masking public_password. However, it never inspects values - so public_username (a credential key not matching the regex) and public_api (a URL key whose value may embed credentials in the scheme://user:pass@host/ form) are returned verbatim. The fix in 4.5.6 introduces a new secure_option() function that both expands the key regex (adding 'username|user|login') and applies a second-pass URL credential regex (_SECURE_URL_CREDENTIALS_RE) to strip userinfo from URL values regardless of key name.
Know when Glances gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Network-reachable unauthenticated API endpoint; no auth required once preconditions are met; only partial confidentiality loss from specific config values.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Glances is an open-source system cross-platform monitoring tool. Prior to 4.5.6, as_dict_secure() in glances/config.py checks only option names and exposes public_username and credentials embedded in public_api values through unauthenticated GET /api/4/config and GET /api/4/config/ip requests. This issue is fixed in 4.5.6.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
The package glances before 3.2.1 are vulnerable to XML External Entity (XXE) Injection via the use of Fault to parse unt
Command injection in Glances prior to 4.5.6 allows a local unprivileged user to execute arbitrary shell commands when ad
Glances is an open-source system cross-platform monitoring tool. versions up to 4.5.1 is affected by information exposur
Command injection in Glances system monitoring (versions 4.5.2 through 4.5.5) allows a local attacker with process-execu
Cross-origin data exfiltration in Glances web server allows remote unauthenticated attackers to read sensitive system in
Server-Side Request Forgery in Glances IP plugin allows authenticated attackers to force the monitoring application to s
SQL injection in Glances TimescaleDB export module allows local attackers to execute arbitrary SQL commands against the
Glances versions through 4.5.5 contain an incomplete fix for CVE-2026-53925: the `--disable-config-exec` flag correctly
Glances REST API prior to 4.5.6 exposes authenticated system monitoring data to untrusted cross-origin websites due to a
Cassandra export module in Glances prior to version 4.5.4 allows local privilege-escalated users to redirect monitoring
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2026-60302
GHSA-4h34-v6r8-mmjc
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB