CVE-2026-84828: Pcs: pcs: non-root haclient users can read arbitrary files via pcs host auth --token

Published Sep 2, 2026
·
Updated

A flaw was found in PCS (Pacemaker Configuration System). A local attacker with membership in the 'haclient' group can exploit the 'pcs host auth --token' command to read the contents of arbitrary files on the filesystem, provided the files are shorter than 256 bytes. The file contents are read with root privileges by the pcsd daemon and can be exfiltrated by the attacker through subsequent cluster node communication. This allows disclosure of sensitive data such as API keys, tokens, or configuration secrets that would otherwise be inaccessible to the attacker.

Other sources

PCS (Pacemaker Configuration System) has an arbitrary file read vulnerability in the pcs host auth --token <path> command path. When a non-root user in the 'haclient' group runs this command, the nonrootrun() function in pcs/app.py forwards it to the locally running pcsd daemon via HTTP POST to /runpcs. The pcsd daemon (running as root) matches the command against its allowedcommands list in pcsd/pcsd.rb (['host', 'auth', '...']) with no restriction on --token, and re-executes PCS as root. This causes utils.gettokenfromfile() in pcs/utils.py to open and read the attacker-specified file path with root privileges, reading up to 256 bytes. The file contents are base64-encoded and stored as a token in the known-hosts configuration file. The attacker can exfiltrate the file contents by triggering node communication (e.g., pcs pcsd status) and intercepting the HTTP Cookie header containing the base64-encoded token.

Affected: PCS versions from 0.10.8 onwards (introduced in commit 9178b78d11baa70e700a5c0d9fc1c17f27d452fa). RHEL 8.4+, RHEL 9.0+, and RHEL 10.0+ ship affected PCS versions.

Fix: Upstream patch attached to PSIRTSUPT-22935 (commit b41eaf3c6e2ecfc575c42442fb02b8ef05b4dd6a, not yet on public GitHub main). Blocks pcs host auth --token for non-root users in both pcs/app.py and pcsd/pcsd.rb.

Reporter: Peter Romancik (PCS upstream developer, Red Hat). PSIRT ticket: PSIRTSUPT-22935

Red Hat

Affected Software

1 affected component
PCS (Pacemaker Configuration System)>=undefined

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade PCS (Pacemaker Configuration System) to a version that resolves this vulnerability.

    Patch PSIRTSUPT-22935
  2. Configuration

    Update the pcsd allowed_commands handling so the command path does not permit arbitrary file reads via `pcs host auth --token <path>` (per upstream fix attached to PSIRTSUPT-22935, commit b41eaf3c6e2ecfc575c42442fb02b8ef05b4dd6a).

    pcsd/pcsd.rb allowed_commands for pcs host auth --token = Restrict 'pcs host auth --token' to prevent non-root haclient users from accessing --token
  3. Configuration

    In `_non_root_run()` in pcs/app.py, block the `pcs host auth --token` command so non-root users in the 'haclient' group cannot forward it to pcsd where it would be executed as root (per upstream fix attached to PSIRTSUPT-22935, commit b41eaf3c6e2ecfc575c42442fb02b8ef05b4dd6a).

    pcs/app.py _non_root_run forwarding behavior for /run_pcs = Block `pcs host auth --token` forwarding for non-root haclient users
  4. Compensating control

    Ensure the `pcs host auth --token` command cannot be executed by non-root users (especially members of the 'haclient' group) so that attackers cannot trigger the root-running file read via `/run_pcs`.

Event History

Sep 2, 2026
Data Sourced
via Red Hat·11:22 AM
DescriptionSeverityAffected Software
Sep 10, 2026
CVE Published
via MITRE·11:20 AM
Data Sourced
via MITRE·11:20 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can exploit this issue?

A local user who is a member of the haclient group can exploit it. The attack does not require the user to be root, but it relies on access to the locally running pcsd daemon.

2

What access does an attacker need, and is user interaction required?

The attacker needs local access and haclient group membership, then can invoke pcs host auth --token with a chosen file path. No user interaction is required.

3

What data can be exposed?

The issue can disclose contents of arbitrary filesystem files that are shorter than 256 bytes and readable by root. This may include API keys, tokens, and configuration secrets otherwise unavailable to the haclient user.

4

How does the privilege boundary get bypassed?

The non-root PCS invocation is forwarded to pcsd, which runs as root, and pcsd permits the host auth command without restricting the --token path. PCS then opens the attacker-supplied path with root privileges, and the content can be exfiltrated through subsequent cluster-node communication.

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