<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-04T08:37:04.018974+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/brew-glances-cve-2026-62982</id>
    <title>BREW-glances-CVE-2026-62982 — Glances: Incomplete fix of CVE-2026-32608: action-template sanitizer is bypassed by nested stat values (process 'cmdlin…</title>
    <updated>2026-10-04T08:37:04.021286+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Homebrew: glances</p>
<p>Glances is an open-source system cross-platform monitoring tool. From 4.5.2 until 4.5.6, _sanitize_mustache_dict() in glances/actions.py skips nested list and dictionary strings such as process cmdline values, allowing pipe characters to survive chevron.render() and be executed by secure_popen() through administrator-configured action templates. This issue is fixed in 4.5.6.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/brew-glances-cve-2026-62982"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/cve-2026-62982</id>
    <title>CVE-2026-62982 — Glances: Incomplete fix of CVE-2026-32608: action-template sanitizer is bypassed by nested stat values (process 'cmdlin…</title>
    <updated>2026-10-04T08:37:04.021342+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> nicolargo glances</p>
<p>Glances is an open-source system cross-platform monitoring tool. From 4.5.2 until 4.5.6, _sanitize_mustache_dict() in glances/actions.py skips nested list and dictionary strings such as process cmdline values, allowing pipe characters to survive chevron.render() and be executed by secure_popen() through administrator-configured action templates. This issue is fixed in 4.5.6.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/cve-2026-62982"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-73wf-9vmv-5pv9</id>
    <title>GHSA-73wf-9vmv-5pv9 — Glances: Incomplete fix of CVE-2026-32608: action-template sanitizer is bypassed by nested stat values (process 'cmdlin…</title>
    <updated>2026-10-04T08:37:04.021373+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: glances</p>
<p>## Summary
CVE-2026-32608 ("Command Injection via Process Names in Action Command Templates") was fixed (commit `5680a5d`) by adding `_sanitize_mustache_dict`, which replaces the shell operators `&amp;&amp;`, `|`, `&gt;&gt;`, `&gt;` with spaces in the values rendered into action command templates.</p>
<p>The sanitizer only processes **top-level string** values (`if isinstance(v, str)`). Attacker-controlled **nested** values — most notably a process's **`cmdline`, which Glances exposes as a `list`** and which is fully attacker-controlled via argv — are passed through **unsanitized**. Because the Mustache renderer (`chevron`) does **not** HTML-escape the pipe character `|`, a `|` embedded in such a nested value survives into the rendered command and is then interpreted by `secure_popen` (which still interprets `&amp;&amp;`/`|`/`&gt;` by default, `allow_operators=True`), re-introducing the exact command injection the CVE was meant to close.</p>
<p>## Details
The fix (`glances/actions.py`):
```python
_SHELL_OPERATORS = ('&amp;&amp;', '|', '&gt;&gt;', '&gt;')                     # line 25</p>
<p>def _sanitize_mustache_dict(mustache_dict):                   # line 28
    ...
    for k, v in mustache_dict.items():
        if isinstance(v, str):                                # line 40  &lt;-- ONLY top-level strings
            for op in _SHELL_OPERATORS:
                v = v.replace(op, ' ')
            safe[k] = v
        else:
            safe[k] = v                                       # nested list/dict passed VERBATIM
    return safe
```
R…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-73wf-9vmv-5pv9"/>
  </entry>
</feed>
