CVE-2026-68519
Python vulnerability analysis and mitigation

Overview

CVE-2026-68519 is an OS command injection vulnerability in Glances, an open-source cross-platform system monitoring tool, caused by an incomplete fix of CVE-2026-53925 (GHSA-3vwc-qwhc-3mj7). The --disable-config-exec flag, intended to prevent shell operator interpretation in configuration-sourced commands, was correctly applied to AMP module commands but was not applied to the on-alert action command path in glances/actions.py. All versions up to and including 4.5.5 are affected; version 4.5.6 contains the fix. It carries a CVSS v4.0 base score of 7.1 (High) (GitHub Advisory).

Technical details

The root cause is CWE-78 (Improper Neutralization of Special Elements used in an OS Command). In glances/actions.py, the GlancesActions.run() method calls secure_popen(cmd_full) at line 111 without passing allow_operators=, which defaults to True, meaning shell operators (>, &&, |) are always interpreted regardless of whether --disable-config-exec is set. The AMP modules were correctly patched in the prior fix to pass allow_operators=self.allow_operators(), but this was not propagated to the alert action path. Exploitation requires an attacker to have write access to the Glances configuration file and the ability to trigger an alert condition (e.g., by generating CPU load to reach a configured threshold) (GitHub Advisory, Patch Commit).

Impact

Successful exploitation allows an attacker with write access to the Glances configuration file to perform arbitrary file writes via the > redirection operator, chain arbitrary commands using &&, or pipe output to other processes using |, all executing with the privileges of the Glances process. This results in high confidentiality, integrity, and availability impact on the vulnerable system. The scope is limited to the local system running Glances, with no direct subsequent-system impact, but arbitrary command execution could enable lateral movement or persistence depending on the process privilege level (GitHub Advisory).

Exploitability

No public proof-of-concept exploit or active in-the-wild exploitation has been observed as of the advisory date, though the NVD SSVC assessment notes PoC-level exploitation (Feedly). The advisory itself includes a benign PoC demonstrating the bypass: adding user_critical_action=echo MARKER > /tmp/poc_marker to glances.conf and triggering a CPU alert creates the file despite --disable-config-exec being set. The EPSS score is 0.0, and the vulnerability is not listed in the CISA KEV catalog. Exploitation is not automatable and requires high privileges (configuration file write access) plus a specific attack precondition (triggering an alert) (GitHub Advisory).

Exploitation steps

  1. Gain configuration file write access: Obtain write permissions to the Glances configuration file (glances.conf), typically located at ~/.config/glances/glances.conf or /etc/glances/glances.conf. This requires local access with sufficient privileges.
  2. Inject a malicious alert action: Edit the configuration file to add a shell-operator-containing command under an alert threshold section. For example:
    [cpu]
    user_critical=1
    user_critical_action=malicious_command > /tmp/output_file
  3. Start Glances with --disable-config-exec: Launch Glances with the hardening flag enabled: glances --disable-config-exec. The operator expects this flag to prevent shell operator interpretation, but the on-alert path remains unprotected.
  4. Trigger the alert condition: Generate sufficient system load (e.g., CPU stress) to cause the configured metric to reach the critical threshold (e.g., user_critical=1 is trivially met).
  5. Achieve command execution: When the alert fires, GlancesActions.run() calls secure_popen(cmd_full) with allow_operators=True (default), causing the shell operator to be interpreted and the injected command to execute with the privileges of the Glances process (GitHub Advisory, Patch Commit).

Indicators of compromise

  • File System: Unexpected files created in world-writable directories (e.g., /tmp/) with timestamps correlating to Glances alert events; unauthorized modifications to system files writable by the Glances process account.
  • Logs: Glances log entries showing Action triggered for <stat_name> (CRITICAL): <command_with_shell_operators> where the command contains >, &&, or |; unexpected process execution events spawned around alert trigger times.
  • Process: Unusual child processes spawned by the Glances process (e.g., sh, bash, curl, wget, or other utilities) that are not part of normal Glances operation.
  • Configuration: Presence of shell operators (>, &&, |) in alert action values (e.g., *_critical_action, *_warning_action) within glances.conf that were not placed there by authorized administrators (GitHub Advisory).

Mitigation and workarounds

Upgrade Glances to version 4.5.6 or later, which applies the allow_operators=self.allow_operators() fix to the GlancesActions.run() method, consistent with the AMP module fix (Glances v4.5.6 Release). As a workaround prior to patching, restrict write access to the Glances configuration file to authorized administrators only, and audit all existing alert action commands (*_critical_action, *_warning_action) for shell operators (>, &&, |). Running Glances under a least-privilege account also limits the blast radius if exploitation occurs (GitHub Advisory).

Community reactions

The vulnerability was reported through a responsible-disclosure incomplete-fix measurement study by researcher sec-reex, highlighting a systematic gap in the prior CVE-2026-53925 patch. The advisory notes that the fix was straightforward — passing allow_operators=not args.disable_config_exec into secure_popen() — and the patch was released promptly in Glances 4.5.6 alongside four other security fixes. No significant broader media coverage or social media discussion has been identified beyond standard vulnerability database aggregation (GitHub Advisory, Glances v4.5.6 Release).

Additional resources


SourceThis report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-j659-8xh6-5pq5HIGH8.7
  • Python logoPython
  • atomic-agents-stack
NoYesAug 17, 2026
GHSA-xhcr-cqfr-m3hvHIGH8.7
  • Python logoPython
  • atomic-agents-stack
NoYesAug 17, 2026
CVE-2026-71491HIGH8.7
  • Python logoPython
  • sqlparse
NoYesAug 17, 2026
CVE-2026-68519HIGH7.1
  • Python logoPython
  • glances
NoYesAug 17, 2026
CVE-2026-68520MEDIUM5.3
  • Python logoPython
  • glances
NoYesAug 17, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management