CVE-2026-76648CWE-862broken-access-control

CVE-2026-76648

High · published September 23, 2026

CVSS v3.1
8.5
EPSS
0%
Percentile
13.8
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
8.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N
CVSS v4.0
Not supplied
EPSS
0.00236 · 13.8th percentile
Weakness
CWE-862 · Missing Authorization
Published
2026-09-23T23:19Z
References (3)
EPSS history
Timeline
  • 25 SEP 03:27Z
    EPSS moved — → 0%
    epss
  • 23 SEP 18:24Z
    Automation-controller: automation-controller-container: aap controller: copyapiview.post() missing read authorization check enables job template secret recovery
    cvelistv5