PYSEC-2026-2176
Vulnerability from pysec - Published: 2026-04-21 00:16 - Updated: 2026-07-13 05:48Glances is an open-source system cross-platform monitoring tool. Prior to version 4.5.4, a Server-Side Request Forgery (SSRF) vulnerability exists in the Glances IP plugin due to improper validation of the public_api configuration parameter. The value of public_api is used directly in outbound HTTP requests without any scheme restriction or hostname/IP validation. An attacker who can modify the Glances configuration can force the application to send requests to arbitrary internal or external endpoints. Additionally, when public_username and public_password are set, Glances automatically includes these credentials in the Authorization: Basic header, resulting in credential leakage to attacker-controlled servers. This vulnerability can be exploited to access internal network services, retrieve sensitive data from cloud metadata endpoints, and/or exfiltrate credentials via outbound HTTP requests. The issue arises because public_api is passed directly to the HTTP client (urlopen_auth) without validation, allowing unrestricted outbound connections and unintended disclosure of sensitive information. Version 4.5.4 contains a patch.
| Name | purl | glances | pkg:pypi/glances |
|---|
{
"affected": [
{
"ecosystem_specific": {},
"package": {
"ecosystem": "PyPI",
"name": "glances",
"purl": "pkg:pypi/glances"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "4.5.4"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.3.1",
"1.3.2",
"1.3.3",
"1.3.4",
"1.3.5",
"1.3.6",
"1.3.7",
"1.4",
"1.4.1",
"1.4.1.1",
"1.4.2",
"1.4.2.1",
"1.5",
"1.5.1",
"1.5.2",
"1.6",
"1.6.1",
"1.7",
"1.7.1",
"1.7.2",
"1.7.3",
"1.7.4",
"1.7.5",
"1.7.6",
"1.7.7",
"2.0",
"2.0.1",
"2.1",
"2.1.1",
"2.1.2",
"2.10",
"2.11",
"2.11.1",
"2.2",
"2.2.1",
"2.3",
"2.4",
"2.4.1",
"2.4.2",
"2.5",
"2.5.1",
"2.6",
"2.6.1",
"2.6.2",
"2.7",
"2.7.1",
"2.8",
"2.8.1",
"2.8.2",
"2.8.3",
"2.8.4",
"2.8.5",
"2.8.6",
"2.8.7",
"2.8.8",
"2.9.0",
"2.9.1",
"3.0",
"3.0.1",
"3.0.2",
"3.1.0",
"3.1.1",
"3.1.2",
"3.1.3",
"3.1.4",
"3.1.4.1",
"3.1.5",
"3.1.6",
"3.1.6.1",
"3.1.6.2",
"3.1.7",
"3.2.0",
"3.2.1",
"3.2.2",
"3.2.3",
"3.2.3.1",
"3.2.4",
"3.2.4.1",
"3.2.4.2",
"3.2.5",
"3.2.6.1",
"3.2.6.2",
"3.2.6.3",
"3.2.6.4",
"3.2.7",
"3.3.0",
"3.3.0.1",
"3.3.0.2",
"3.3.0.3",
"3.3.0.4",
"3.3.1",
"3.3.1.1",
"3.4.0",
"3.4.0.1",
"3.4.0.2",
"3.4.0.3",
"3.4.0.4",
"3.4.0.5",
"4.0.1",
"4.0.2",
"4.0.3",
"4.0.4",
"4.0.5",
"4.0.6",
"4.0.7",
"4.0.8",
"4.1.0",
"4.1.1",
"4.1.2",
"4.2.0",
"4.2.1",
"4.3.0",
"4.3.0.1",
"4.3.0.3",
"4.3.0.4",
"4.3.0.5",
"4.3.0.6",
"4.3.0.7",
"4.3.0.8",
"4.3.1",
"4.3.2",
"4.3.3",
"4.4.0",
"4.4.1",
"4.5.0",
"4.5.0.1",
"4.5.0.2",
"4.5.0.3",
"4.5.0.4",
"4.5.0.5",
"4.5.1",
"4.5.2",
"4.5.3"
]
}
],
"aliases": [
"CVE-2026-35587",
"GHSA-g5pq-48mj-jvw8"
],
"details": "Glances is an open-source system cross-platform monitoring tool. Prior to version 4.5.4, a Server-Side Request Forgery (SSRF) vulnerability exists in the Glances IP plugin due to improper validation of the public_api configuration parameter. The value of public_api is used directly in outbound HTTP requests without any scheme restriction or hostname/IP validation. An attacker who can modify the Glances configuration can force the application to send requests to arbitrary internal or external endpoints. Additionally, when public_username and public_password are set, Glances automatically includes these credentials in the Authorization: Basic header, resulting in credential leakage to attacker-controlled servers. This vulnerability can be exploited to access internal network services, retrieve sensitive data from cloud metadata endpoints, and/or exfiltrate credentials via outbound HTTP requests. The issue arises because public_api is passed directly to the HTTP client (urlopen_auth) without validation, allowing unrestricted outbound connections and unintended disclosure of sensitive information. Version 4.5.4 contains a patch.",
"id": "PYSEC-2026-2176",
"modified": "2026-07-13T05:48:56.768905Z",
"published": "2026-04-21T00:16:29.030Z",
"references": [
{
"type": "FIX",
"url": "https://github.com/nicolargo/glances/commit/d6808be66728956477cc4b544bab1acd71ac65fb"
},
{
"type": "EVIDENCE",
"url": "https://github.com/nicolargo/glances/security/advisories/GHSA-g5pq-48mj-jvw8"
}
],
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.