Description
CopyAPIView (awx/awx/api/generics.py:873) sets permission_classes =
(IsAuthenticated,), so DRF's get_object() performs no object-level
RBAC. The get() handler (lines 988–991) explicitly guards with
request.user.can_access(obj._class_, 'read', obj) — but post()
(lines 1001–1010) does not. POST only checks:

can_access(model, 'add', create_kwargs_check)

can_access(model, 'copy_related', obj)

For JobTemplate, can_add (awx/awx/main/access.py:1465–1520) gates on

inventory.use_role + project.use_role +
execution_environment.read_role — resource-level roles that do not
imply read on the source JT — and can_copy_related (1522–1534) checks
only credentials.use_role. None of these imply the caller can read the
source JT.
Published: 2026-09-23
Score: 8.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Confidentiality Breach
Action: Immediate Patch
AI Analysis

Impact

CopyAPIView lacks an authorization check for POST requests, allowing an authenticated user with add and copy-related permissions to create a copy of a JobTemplate. The copy includes the template's secrets and sensitive configuration, enabling the attacker to recover confidential data that should not be accessible without a read privilege. Because the API does not enforce object-level read permissions, this flaw permits unauthorized disclosure of secrets and could be exploited for privilege escalation. The weakness is a missing authorization check on the copy operation, identified as CWE‑862.

Affected Systems

This issue affects Red Hat Ansible Automation Platform 2, specifically the automation controller and container components that expose the Copy API. No further version constraints are listed in the CNA data; the vulnerability applies to all installations of the platform that include the affected code path.

Risk and Exploitability

CVSS base score of 8.5 classifies the flaw as high severity. EPSS is not available, but the lack of a publicly known exploit and absence from the CISA KEV catalog suggest moderate to low exploitation likelihood. However, the attack requires an authenticated user who has the 'add' and 'copy_related' permissions on the target resource but not necessarily ‘read’ access. In many environments, users granted such privileges are already elevated, meaning the vulnerability can be used by a privileged account to extract secrets from other job templates. Organizations should assess whether any account has these permissions and consider limiting them until the patch is applied.

Generated by OpenCVE AI on September 23, 2026 at 19:40 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest patch from Red Hat that fixes the missing authorization check on POST requests in CopyAPIView.
  • Review and tighten RBAC so that add and copy_related permissions are granted only to accounts that also have read access to the source job template.
  • If a patch is not yet available, block or restrict access to the Copy API endpoint through platform configuration or network controls until a fix is released.

Generated by OpenCVE AI on September 23, 2026 at 19:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 24 Sep 2026 06:15:00 +0000

Type Values Removed Values Added
CPEs cpe:/a:redhat:ansible_automation_platform:2.7::el9
References

Wed, 23 Sep 2026 18:45:00 +0000

Type Values Removed Values Added
Description CopyAPIView (awx/awx/api/generics.py:873) sets permission_classes = (IsAuthenticated,), so DRF's get_object() performs no object-level RBAC. The get() handler (lines 988–991) explicitly guards with request.user.can_access(obj._class_, 'read', obj) — but post() (lines 1001–1010) does not. POST only checks: can_access(model, 'add', create_kwargs_check) can_access(model, 'copy_related', obj) For JobTemplate, can_add (awx/awx/main/access.py:1465–1520) gates on inventory.use_role + project.use_role + execution_environment.read_role — resource-level roles that do not imply read on the source JT — and can_copy_related (1522–1534) checks only credentials.use_role. None of these imply the caller can read the source JT.
Title Automation-controller: automation-controller-container: aap controller: copyapiview.post() missing read authorization check enables job template secret recovery
First Time appeared Redhat
Redhat ansible Automation Platform
Weaknesses CWE-862
CPEs cpe:/a:redhat:ansible_automation_platform:2
Vendors & Products Redhat
Redhat ansible Automation Platform
References
Metrics cvssV3_1

{'score': 8.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N'}


Subscriptions

Redhat Ansible Automation Platform
cve-icon MITRE

Status: PUBLISHED

Assigner: redhat

Published:

Updated: 2026-09-24T05:57:57.289Z

Reserved: 2026-08-19T15:34:44.371Z

Link: CVE-2026-76648

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-23T19:19:15.030

Modified: 2026-09-24T06:17:01.203

Link: CVE-2026-76648

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-24T09:10:00Z

Weaknesses