Skip to main content

Glances CVE-2026-68518

| EUVDEUVD-2026-60265 HIGH
OS Command Injection (CWE-78)
2026-08-17 GitHub_M GHSA-qcpp-8x79-hhp3
8.8
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Control process name with trailing '&'
  2. Delivery
    Trigger or await monitoring threshold
  3. Exploit
    Glances renders adjacent unescaped template variables
  4. Execution
    Sanitized '&' values reconstruct '&&' post-render
  5. Persist
    secure_popen() executes injected command
  6. Impact
    Arbitrary code runs as Glances process

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

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 concurrent conditions: first, an administrator must have configured at least one Glances action template that places two unescaped Mustache variables directly adjacent with no separating character - specifically using triple-brace syntax ({{{var1}}}{{{var2}}}) or double-brace-ampersand ({{&var1}}{{&var2}}), which are Chevron's unescaped rendering modes that pass values verbatim; standard escaped double-brace ({{var}}) is not vulnerable. Second, the attacker must be able to execute a process or start a named container on the monitored host such that attacker-controlled values (process name, command line, container name, or mount point) are injected into the template. The monitoring threshold for that action must also be triggered. Exploitation is strictly limited to local access - no network-based exploitation path exists from default Glances configuration. Deployments with no action templates configured, or with templates using only standard escaped variables or explicit separator characters between variables, are not exploitable regardless of Glances version.

Impact

The CVSS 4.0 score of 8.8 with AV:L/AC:L/AT:P/PR:L/UI:N and full-impact metrics accurately reflects the exploitation model: local access and low-privilege process execution are necessary, but the decisive gating condition is the administrator's use of adjacent unescaped Mustache variables in an action template - an unusual though documented configuration pattern. The CVSS 4.0 AT:P (Attack Target: Presence of a specific target condition) cleanly captures this prerequisite, and is consistent with the independently assessed CVSS 3.1 AC:H. No confirmed active exploitation exists: the vulnerability is absent from the CISA KEV catalog, and no standalone POC repository has been identified. EPSS data was not available in the provided intelligence, so exploitation probability cannot be quantified beyond the structural signals. The SC:H/SI:H/SA:H subsequent-system metrics reflect that injected commands execute as the Glances process, which on many deployments runs with elevated host privileges and network reachability to monitored infrastructure, amplifying pivot potential. Even a mid-sized municipal IT team in malbork running Glances with threshold-triggered action templates should treat this as urgent given the availability of a low-risk patch and the zero-friction nature of the upgrade path via PyPI. No conflicting signals exist between the NVD, GHSA, and EUVD data sources.

Exploit ScenarioDerived

A local unprivileged attacker starts a process named 'evilproc&' and passes a crafted command-line argument beginning with '& touch /tmp/evil' on a host where an administrator has configured a Glances action template as 'logger p={{{name}}}{{{cmdline}}}'. When the monitoring threshold fires, _sanitize_mustache_dict() strips the multi-character '&&' from each value individually but leaves the lone '&' intact in each field; Chevron renders the two unescaped variables directly adjacent, producing 'p=evilproc& & touch /tmp/evil', and secure_popen() executes the injected 'touch /tmp/evil' command chained via '&&'. The GHSA advisory includes test cases (test_cross_field_ampersand_reconstruction_blocked and test_run_blocks_cross_field_ampersand_chain) that constitute near-POC-level technical disclosure.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 17, 2026

Command injection in Glances prior to 4.5.6 allows a local unprivileged user to execute arbitrary shell commands when administrator-configured action templates use adjacent unescaped Mustache variables. The per-field sanitizer in _sanitize_mustache_dict() strips multi-character shell operators from individual template field values but cannot prevent their reconstruction across variable boundaries after Chevron rendering, enabling '&&' to be assembled from two separate '&' characters that each pass the filter individually and are then executed by secure_popen(). No public exploit has been identified at time of analysis, though GHSA-qcpp-8x79-hhp3 provides sufficient technical detail to reproduce the attack technique.

RemediationAI

The vendor-released patch is Glances version 4.5.6, installable via PyPI with 'pip install --upgrade glances' and confirmed by the GitHub release tag at https://github.com/nicolargo/glances/releases/tag/v4.5.6 and fix commit 9c280eae5419da680827024b60f6265956e31994. The change adds lone '&' to the stripped operator set in _sanitize_mustache_dict(), preventing cross-field reconstruction. If immediate upgrade is not possible, administrators should audit all configured action templates and replace any adjacent unescaped Mustache variable pairs ({{{a}}}{{{b}}} or {{&a}}{{&b}}) with either standard escaped variants ({{a}}{{b}}, which HTML-encodes '&' and prevents operator injection) or insert a literal non-operator separator character between variables; note that switching to escaped Mustache may alter values that legitimately contain shell-significant characters, breaking intended template behavior. Disabling Glances action templates entirely in glances.conf eliminates the attack surface completely at the cost of losing all threshold-triggered automation. Full advisory details are available at https://github.com/nicolargo/glances/security/advisories/GHSA-qcpp-8x79-hhp3.

Affected VersionsENISA

Glances < 4.5.6

Affected Packages

pypi glances fix: 4.5.6

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 uses the Chevron Python library for Mustache templating in its action system, allowing administrators to define shell commands triggered when monitoring thresholds are crossed. Template variables are populated with runtime stat fields such as process names, container names, and filesystem mount points - all of which are directly attacker-influenceable by any local user who can start a process or named container on the monitored host. The root cause, CWE-78 (Improper Neutralization of Special Elements in an OS Command), stems from an architecturally incomplete sanitization scheme in glances/actions.py lines 25-46: _sanitize_mustache_dict() iterated over _SHELL_OPERATORS = ('&&', '|', '>>', '>') and stripped those sequences from each individual field value before passing the dictionary to chevron.render(). Chevron's unescaped rendering mode (triple-brace {{{var}}} or {{&var}}) emits field values verbatim without HTML escaping, meaning that when two such variables are placed adjacent to one another in a template with no separator character, a trailing single '&' from the first rendered value and a leading single '&' from the second concatenate into a real '&&' operator in the final rendered string. secure_popen() then interprets this as a shell command chain. The fix in v4.5.6 (commit 9c280eae) extends _SHELL_OPERATORS to include the lone '&' character, ensuring neither half of a cross-field boundary can contribute to operator reconstruction. CPE cpe:2.3:a:nicolargo:glances:*:*:*:*:*:*:*:* covers all prior releases.

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

Vendor (GitHub_M) PRIMARY 8.8 HIGH
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
vuln.today AI 7.8 HIGH

Local vector (AV:L) and low privilege (PR:L) since only process execution rights are needed; AC:H because exploitation requires a specific non-default admin template configuration using adjacent unescaped Mustache variables; scope changes (S:C) because injected commands execute as the Glances process with potentially elevated host privileges.

3.1 AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
SUSE HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Aug 17, 2026 - 17:02 EUVD
CVE Published
Aug 17, 2026 - 16:18 cve.org
HIGH 8.8

DescriptionCVE.org

Glances is an open-source system cross-platform monitoring tool. Prior to 4.5.6, _sanitize_mustache_dict() in glances/actions.py sanitizes individual Mustache values before chevron.render(), allowing adjacent unescaped Mustache variables to reconstruct shell operators that secure_popen() executes when attacker-controlled process or container fields are rendered by an administrator-configured action template. This issue is fixed in 4.5.6.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

Glances infrastructure monitoring platforms running versions before 4.5.6 can be compromised by any local system user executing arbitrary commands through template configuration weaknesses. Because monitoring systems typically operate with elevated network access and system permissions, their compromise represents a significant risk vector for attackers seeking lateral movement across the infrastructure stack. Organizations should prioritize urgent patching to prevent unauthorized access to monitoring infrastructure and downstream systems.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Medium
popular open-source sysadmin and DevOps monitoring tool
Threat Intel
1
1 sources
Social Media
2
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

CVE-2021-23418 CRITICAL POC
9.8 Jul 29

The package glances before 3.2.1 are vulnerable to XML External Entity (XXE) Injection via the use of Fault to parse unt

CVE-2026-30928 HIGH POC
7.5 Mar 10

Glances is an open-source system cross-platform monitoring tool. versions up to 4.5.1 is affected by information exposur

CVE-2026-62982 HIGH
8.8 Aug 17

Command injection in Glances system monitoring (versions 4.5.2 through 4.5.5) allows a local attacker with process-execu

CVE-2026-34839 HIGH
7.7 Apr 21

Cross-origin data exfiltration in Glances web server allows remote unauthenticated attackers to read sensitive system in

CVE-2026-35587 HIGH
7.3 Apr 21

Server-Side Request Forgery in Glances IP plugin allows authenticated attackers to force the monitoring application to s

CVE-2026-30930 HIGH
7.3 Mar 10

SQL injection in Glances TimescaleDB export module allows local attackers to execute arbitrary SQL commands against the

CVE-2026-68519 HIGH
7.1 Aug 17

Glances versions through 4.5.5 contain an incomplete fix for CVE-2026-53925: the `--disable-config-exec` flag correctly

CVE-2026-68517 MEDIUM
6.5 Aug 17

Glances REST API prior to 4.5.6 exposes authenticated system monitoring data to untrusted cross-origin websites due to a

CVE-2026-35588 MEDIUM
6.3 Apr 21

Cassandra export module in Glances prior to version 4.5.4 allows local privilege-escalated users to redirect monitoring

CVE-2026-68520 MEDIUM
5.3 Aug 17

Credential disclosure in Glances prior to 4.5.6 allows unauthenticated remote attackers to retrieve plaintext usernames

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Tumbleweed Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy