CVE-2026-68563: Ansible-collection-redhat-leapp: ansible-collection-redhat-leapp: information disclosure of postgresql data via insecure backup permissions

Published May 4, 2026
·
Updated

A flaw was found in ansible-collection-redhat-leapp. When a remediation task is executed with elevated privileges and the leappoldpostgresqldata option is selected, a PostgreSQL data backup archive is created with insecure permissions. This allows a local non-root user on the managed node to read sensitive archived PostgreSQL data, leading to information disclosure.

Other sources

AIONLYREPORT package: ansible-collection-redhat-leapp-1.7.4-1.el102 ------ Summary: Insecure Permissions on PostgreSQL Backup on Managed Node: the remediation task creates a PostgreSQL data backup archive with mode 0755, allowing local non-root users on the managed node to read archived PostgreSQL data after remediation runs. Requirements to exploit: A local authenticated user account on a managed node where the remediation workflow is executed with elevated privileges, leappoldpostgresqldata is selected, and /var/lib/pgsql/data exists when the task runs. Component affected: ansible-collection-redhat-leapp-1.7.4-1.el102, roles/remediate/tasks/leappoldpostgresqldata.yml, task leappoldpostgresqldata Version affected: ansible-collection-redhat-leapp-1.7.4-1.el102 Patch available: no released package fix established; proposed patch included below Version fixed: unknown Upstream coordination: Not notified. CVSS: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N - 5.5 (MEDIUM) AV:L - Exploitation requires local access to the managed node. AC:L - Once the remediation runs, the exposed archive can be read directly with standard tools. PR:L - The attacker needs a local account or equivalent local session on the affected system. UI:N - No separate user interaction is required after the archive is created. S:U - The impact is confined to the same security scope. C:H - The archive may contain the full PostgreSQL data directory and therefore sensitive database contents. I:N - The issue is an information exposure; the report does not establish unauthorized modification. A:N - The report does not establish a direct availability impact. Impact: Moderate. This issue can expose sensitive PostgreSQL data to local non-root users, but exploitation is not remote and depends on a specific remediation path being executed on systems that still contain /var/lib/pgsql/data. Under the Red Hat severity guidance, this is more appropriately classified as Moderate than Important because the exposure is conditional and local, even though the confidentiality impact can be significant on affected hosts. Embargo: no Reason: This is a local, configuration- and workflow-dependent confidentiality issue with straightforward mitigation by tightening backup directory and archive permissions. Acknowledgement: Aisle Research Vulnerability Details: The remediation task archives /var/lib/pgsql/data into /var/backups, then explicitly sets the resulting archive to mode 0755. That makes the backup world-readable on typical systems. The task then removes the original PostgreSQL data directory, leaving the backup archive as the remaining copy in this workflow. The same task also sets /var/backups to 0755, which may preserve or broaden directory readability depending on the existing system state. This remediation is part of the intended remediation flow for the Leapp inhibitor Old PostgreSQL data found in /var/lib/pgsql/data. yaml name: leappoldpostgresqldata | Ensure /var/backups exists ansible.builtin.file: path: "{{ postgresqlbackuppath }}" state: directory mode: "0755"

name: leappoldpostgresqldata | Create tar.gz archive of postgresql data ansible.builtin.command: # noqa: command-instead-of-module cmd: tar -czf {{ postgresqlbackuppath }}/{{ backupfilename }} {{ postgresqldatapath }} changedwhen: true

name: leappoldpostgresqldata | Set permissions on backup archive ansible.builtin.file: path: "{{ postgresqlbackuppath }}/{{ backupfilename }}" mode: "0755"

name: leappoldpostgresqldata | Remove original postgresql data ansible.builtin.file: path: "{{ postgresqldatapath }}" state: absent

The core security consequence established here is local confidentiality loss. The available evidence does not establish a direct integrity or availability impact, and it does not show remote reachability. Steps to reproduce: 1. Prepare a managed node with /var/lib/pgsql/data present and populate it with sample files. 2. Run the remediation workflow so that task leappoldpostgresqldata executes with elevated privileges. 3. Confirm that a backup archive named pgsqldatabackup.tar.gz is created under /var/backups. 4. Check the resulting permissions with stat -c '%a %U:%G %n' /var/backups /var/backups/pgsqldatabackup.tar.gz. 5. From a non-root local account, list the archive contents with tar -tzf /var/backups/pgsqldatabackup.tar.gz. 6. Observe that the archive remains readable to the local user while the original /var/lib/pgsql/data has been removed by the remediation. Mitigation: Until a package fix is available, store these remediation backups in a root-only directory and set the archive permissions to 0600. If the current task must be used as-is, restrict local-user access on affected systems and remove or re-permission the generated backup archive immediately after it is created. Proposed Fix: Restrict the backup location to a dedicated root-owned directory and make the generated archive readable only by root. diff diff --git a/roles/remediate/tasks/leappoldpostgresqldata.yml b/roles/remediate/tasks/leappoldpostgresqldata.yml index 0000000..1111111 100644 — a/roles/remediate/tasks/leappoldpostgresqldata.yml +++ b/roles/remediate/tasks/leappoldpostgresqldata.yml @@ -2,8 +2,9 @@ name: leappoldpostgresqldata | Backup and then remove /var/lib/pgsql/data for remediation vars: postgresqldatapath: /var/lib/pgsql/data

postgresqlbackuppath: /var/backups + postgresqlbackuppath: /var/backups/leapp block: @@ -27,7 +28,10 @@

name: leappoldpostgresqldata | Ensure /var/backups exists ansible.builtin.file: path: "{{ postgresqlbackuppath }}" state: directory

mode: "0755" + owner: root + group: root + mode: "0700"

@@ -38,7 +42,10 @@ name: leappoldpostgresqldata | Set permissions on backup archive ansible.builtin.file: path: "{{ postgresqlbackuppath }}/{{ backupfilename }}"

mode: "0755" + owner: root + group: root + mode: "0600"

------ This report was generated using AI technology. Always review AI-generated content prior to use

— Red Hat

Affected Software

1 affected component
Red Hat ansible-collection-redhat-leapp=1.7.4-1.el10_2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    In the `leapp_old_postgresql_data` remediation task, store the generated PostgreSQL backup archive under `/var/backups` (configured by `postgresql_backup_path: /var/backups`) with root-only permissions: set `/var/backups` permissions to `0700` and set the generated `pgsql_data_backup_*.tar.gz` archive permissions to `0600` (the material notes the issue occurs when the archive is created with mode `0755`).

    ansible-collection-redhat-leapp (role leapp_old_postgresql_data) backup directory and archive permissions = directory: 0700; archive: 0600 (instead of 0755)
  2. Operational

    Run the `leapp_old_postgresql_data` remediation workflow so it creates the backup archive and then removes the original `/var/lib/pgsql/data` (the task sets `state: absent` for the PostgreSQL data path), leaving only the properly permissioned root-owned backup in `/var/backups`.

Event History

May 4, 2026
Data Sourced
via Red Hat·03:20 PM
DescriptionSeverityAffected Software
Jul 30, 2026
CVE Published
via MITRE·09:13 PM
Data Sourced
via MITRE·09:13 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which systems are exposed to this issue?

Exposure is limited to managed nodes where the remediation workflow runs with elevated privileges, the leapp_old_postgresql_data option is selected, and /var/lib/pgsql/data exists when the task executes. A local authenticated non-root account on that node is required to read the archive.

2

Does every remediation run create a readable PostgreSQL backup?

No. The described condition requires selection of leapp_old_postgresql_data and the presence of /var/lib/pgsql/data when the remediation task runs. The data does not state whether that option is enabled by default.

3

How can I check whether a node may already be affected?

Review whether the leapp_old_postgresql_data remediation task was run with elevated privileges on a node containing /var/lib/pgsql/data. Check for PostgreSQL data backup archives created by that task with mode 0755, which permits local non-root users to read the archived data.

4

What can be done if an update is not immediately available?

Avoid selecting leapp_old_postgresql_data when running the elevated remediation workflow where operationally feasible. Existing affected backup archives should have their permissions restricted so local non-root users cannot read them.

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