---
id: CVE-2026-76648
title: |-
  CopyAPIView (awx/awx/api/generics.py:873) sets permission_classes =
  (IsAuthenticated,), so DRF's get_object() performs no object-level
  RBAC
summary: |-
  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_, 'r…
severity: high
cvss: 8.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N'
cwe:
  - CWE-862
vendor: Red Hat
product: ansible-automation-platform-27/controller-rhel9
affected:
  - ansible-automation-platform-27/controller-rhel9 (all versions)
  - automation-controller (all versions)
  - automation-controller-cli
published: '2026-09-23'
updated: '2026-09-24'
sourceUpdated: '2026-09-24T06:17:01.203'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-76648'
references:
  - url: 'https://access.redhat.com/errata/RHSA-2026:71177'
    label: secalert@redhat.com
  - url: 'https://access.redhat.com/security/cve/CVE-2026-76648'
    label: secalert@redhat.com
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2519720'
    label: secalert@redhat.com
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-76648.json
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-76648'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-76648'
tags:
  - nvd
  - cve.org
  - csaf
  - vex
  - red-hat
ingestedAt: '2026-09-23T19:31:04.466Z'
patched:
  - ansible_automation_platform 2.7
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **RHSA-2026:71177** · Red Hat · fixed in: Red Hat Ansible Automation Platform 2.7 · released 2026-09-23 · [advisory](https://access.redhat.com/errata/RHSA-2026:71177)
- **Red Hat VEX** · Important · affected: Red Hat Ansible Automation Platform 2 · no fix planned: Red Hat Ansible Automation Platform 2 · updated 2026-09-24 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-76648.json)
