Glances: `--disable-config-exec` does not cover on-alert action commands (incomplete fix of CVE-2026-53925)
Summary
In Glances 4.5.5 the --disable-config-exec flag was extended (GHSA-3vwc-qwhc-3mj7) to stop secure_popen() from
interpreting the shell operators &&, | and > in AMP command values taken from the configuration file. The
hardening was not applied to the on-alert action command path, which reads its command lines from the same
configuration file. As a result, with --disable-config-exec enabled, a configured alert action that contains >
(file redirection), && (chaining) or | (pipe) still has those operators interpreted, allowing arbitrary file
write / command chaining at the privilege of the glances process when the alert triggers.
Affected code
glances/actions.py (Glances 4.5.5, latest):
ret = secure_popen(cmd_full) # line 111 — no allow_operators=, defaults to True
By contrast the AMP modules were fixed:
# glances/amps/default/__init__.py:69
self.set_result(secure_popen(res, allow_operators=self.allow_operators()).rstrip())
# glances/amps/systemv/__init__.py:60
res = secure_popen(self.get('service_cmd'), allow_operators=self.allow_operators())
PoC (benign)
glances.conf:
[cpu]
user_critical=1
user_critical_action=echo MARKER > /tmp/poc_marker
Run glances --disable-config-exec and generate CPU load. When the cpu user alert reaches CRITICAL, /tmp/poc_marker
is created — i.e. the > operator was interpreted despite --disable-config-exec. The same > in an [amp_*]
command value is correctly not interpreted.
Impact
Arbitrary file write (>), command chaining (&&) and pipe (|) from config-defined alert actions, contrary to the
guarantee of --disable-config-exec. Trust boundary = the glances configuration file.
Suggested fix
Pass allow_operators=not args.disable_config_exec from GlancesActions.run() into secure_popen() (GlancesActions
already holds args).
Credit
Reported via responsible-disclosure incomplete-fix measurement study.
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Python (PyPI) | glances | < 4.5.6 | 4.5.6 |
References
- https://github.com/nicolargo/glances/security/advisories/GHSA-59fj-m2j6-hcxh
- https://github.com/nicolargo/glances/commit/5c07c0d96423e9d5b9de71dd92e3717c66f504bd
- https://github.com/nicolargo/glances
- https://github.com/nicolargo/glances/releases/tag/v4.5.6
- https://pypi.org/project/glances
- https://github.com/advisories/GHSA-59fj-m2j6-hcxh
- https://nvd.nist.gov/vuln/detail/CVE-2026-68519
- CVSS vector
CVSS:4.0/AV:L/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- Weakness (CWE)
CWE-78- Platform
- Python (PyPI)
- Package
glances- Disclosed
- 17.08.2026
- Updated
- 11.10.2026 14:19
Sources and licenses
OSV / GitHub Advisory Database - PYSEC-2026-3665 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-59fj-m2j6-hcxh - CC BY 4.0
Vulnerability history: glances
All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 26
- First → latest
- 07.2021 08.2026
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- Critical 1
- High 19
- Medium 6
Disclosures per year
- 2021: 1
- 2022: 0
- 2023: 0
- 2024: 0
- 2025: 0
- 2026: 25
-
Glances: `--disable-config-exec` does not cover on-alert action commands (incomplete fix of CVE-2026-53925) this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.