PYSEC-2026-2171
Vulnerability from pysec - Published: 2026-03-18 18:16 - Updated: 2026-07-13 05:48Glances is an open-source system cross-platform monitoring tool. Glances recently added DNS rebinding protection for the MCP endpoint, but prior to version 4.5.2, the main REST/WebUI FastAPI application still accepts arbitrary Host headers and does not apply TrustedHostMiddleware or an equivalent host allowlist. As a result, the REST API, WebUI, and token endpoint remain reachable through attacker-controlled domains in classic DNS rebinding scenarios. Once the victim browser has rebound the attacker domain to the Glances service, same-origin policy no longer protects the API because the browser considers the rebinding domain to be the origin. This is a distinct issue from the previously reported default CORS weakness. CORS is not required for exploitation here because DNS rebinding causes the victim browser to treat the malicious domain as same-origin with the rebinding target. Version 4.5.2 contains a patch for the issue.
| 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.2"
}
],
"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"
]
}
],
"aliases": [
"CVE-2026-32632",
"GHSA-hhcg-r27j-fhv9"
],
"details": "Glances is an open-source system cross-platform monitoring tool. Glances recently added DNS rebinding protection for the MCP endpoint, but prior to version 4.5.2, the main REST/WebUI FastAPI application still accepts arbitrary `Host` headers and does not apply `TrustedHostMiddleware` or an equivalent host allowlist. As a result, the REST API, WebUI, and token endpoint remain reachable through attacker-controlled domains in classic DNS rebinding scenarios. Once the victim browser has rebound the attacker domain to the Glances service, same-origin policy no longer protects the API because the browser considers the rebinding domain to be the origin. This is a distinct issue from the previously reported default CORS weakness. CORS is not required for exploitation here because DNS rebinding causes the victim browser to treat the malicious domain as same-origin with the rebinding target. Version 4.5.2 contains a patch for the issue.",
"id": "PYSEC-2026-2171",
"modified": "2026-07-13T05:48:56.367903Z",
"published": "2026-03-18T18:16:28.760Z",
"references": [
{
"type": "ADVISORY",
"url": "https://github.com/nicolargo/glances/releases/tag/v4.5.2"
},
{
"type": "FIX",
"url": "https://github.com/nicolargo/glances/commit/5850c564ee10804fdf884823b9c210eb954dd1f9"
},
{
"type": "EVIDENCE",
"url": "https://github.com/nicolargo/glances/security/advisories/GHSA-hhcg-r27j-fhv9"
}
],
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:N",
"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.