Vulnerabilities

Vulnerability · CVE-2026-76648

CopyAPIView (awx/awx/api/generics.py:873) sets permission_classes = (IsAuthenticated,), so DRF's get_object() performs no object-level RBAC.

Published Sep 23, 2026 · catalog updated Oct 16, 2026 · CopyAPIView (awx/awx/api/generics.py:873) sets permission_classes

Check if you run it

No confirmed exploitation is on record for CVE-2026-76648. EPSS is 0.24%. Act only if a listed version of CopyAPIView (awx/awx/api/generics.py:873) sets permission_classes is installed.

Gaps on this record

  • The stored product name is a package slug. The name on this page is taken from the title (CopyAPIView (awx/awx/api/generics.py:873) sets permission_classes).
  • No version range is stored. A customer cannot check an installed version against this record.
  • No vendor fix or required action is stored. Compare the linked advisory before you change production.
Severity
High8.5
Known exploitation
Not in CISA/VulnCheck KEV
EPSS
0.24%
Remediation
Advisory link
Affected products
See sources for product scope

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.

No affected version ranges are stored yet. Use the vendor advisory before you decide this record does not apply.

How to fix CVE-2026-76648

What to do

Three questions, each answered from this record only. Confirm the vendor advisory before you patch.

Should you patch?

No confirmed exploitation is on record for CVE-2026-76648. EPSS is 0.24%. Act only if a listed version of CopyAPIView (awx/awx/api/generics.py:873) sets permission_classes is installed.

Which versions are affected?

Affected version ranges are not on this record. Compare the installed version with the linked vendor advisory before you change production.

What should an analyst verify?

CWE-862: Missing Authorization. EPSS 0.24%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.

Code

The project this record applies to. Exploit listings stay in References.

No public source repository is identified for this product.

Timeline

Detection, updates, and resolution for this record.

  1. Sep 23, 2026 · NIST NVD

    Detected

    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 JobT

  2. Oct 16, 2026 · NIST NVD

    Updated

    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 JobT

Sources

  • CVE.orgVulnerability recordCVE-2026-76648

    Official CVE identifier

    cve.org
  • FIRST EPSSExploitation probabilityCVE-2026-76648

    30-day exploitation probability 0.2%

    first.org
  • NIST NVDVulnerability recordCVE-2026-76648

    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) d

    nvd.nist.gov

References

Freshness

Last verified in this catalog Oct 18, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.