CVE Vulnerabilities

CVE-2024-7143

Insecure Inherited Permissions

Published: Aug 07, 2024 | Modified: Sep 18, 2024
CVSS 3.x
8.3
HIGH
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
CVSS 2.x
RedHat/V2
RedHat/V3
6.7 MODERATE
CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:L
Ubuntu

A flaw was found in the Pulp package. When a role-based access control (RBAC) object in Pulp is set to assign permissions on its creation, it uses the AutoAddObjPermsMixin (typically the add_roles_for_object_creator method). This method finds the object creator by checking the current authenticated user. For objects that are created within a task, this current user is set by the first user with any permissions on the task object. This means the oldest user with model/domain-level task permissions will always be set as the current user of a task, even if they didnt dispatch the task. Therefore, all objects created in tasks will have their permissions assigned to this oldest user, and the creating user will receive nothing.

Weakness

A product defines a set of insecure permissions that are inherited by objects that are created by the program.

Affected Software

Name Vendor Start Version End Version
Pulp Pulpproject - (including) - (including)
Red Hat Ansible Automation Platform 1.2 RedHat automation-controller *
Red Hat Ansible Automation Platform 1.2 RedHat python3x-urllib3 *
Red Hat Ansible Automation Platform 1.2 RedHat python-urllib3 *
Red Hat Ansible Automation Platform 1.2 RedHat receptor *
Red Hat Ansible Automation Platform 2 RedHat automation-controller *
Red Hat Ansible Automation Platform 2 RedHat python3x-django *
Red Hat Ansible Automation Platform 2 RedHat python3x-pulpcore *
Red Hat Ansible Automation Platform 2 RedHat python3x-urllib3 *
Red Hat Ansible Automation Platform 2 RedHat python-django *
Red Hat Ansible Automation Platform 2 RedHat python-pulpcore *
Red Hat Ansible Automation Platform 2 RedHat python-urllib3 *
Red Hat Ansible Automation Platform 2 RedHat receptor *

Potential Mitigations

  • Compartmentalize the system to have “safe” areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area.
  • Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.

References