Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain any authenticated AAP account
-
DeliveryGET /api/v2/config/ endpoint
-
ExploitRead unguarded license_info block
-
ExecutionHarvest subscription/pool/SKU/instance data
-
ImpactUse for estate recon and support social-engineering
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a valid authenticated account of any privilege level on the automation-controller (the /api/v2/config/ endpoint enforces only DRF IsAuthenticated). No superuser or auditor role is needed because the license_info portion of the response is not covered by the superuser/auditor gate that protects project_base_dir, project_local_paths, and custom_virtualenvs. No user interaction, special configuration, or non-default deployment mode is required - it affects default configurations. The primary limiting factor is that unauthenticated network attackers cannot reach the data; a login (even a minimal one) is mandatory, and impact is confined to reading commercial license metadata. |
| Impact | This is a genuinely low-priority issue despite carrying a network attack vector. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, base 4.3) is internally consistent with the description: it is a confidentiality-only information-disclosure flaw requiring an authenticated account (PR:L), with no integrity or availability impact and no scope change. No EPSS score, CISA KEV listing, POC, or SSVC decision data was provided, and no public exploit was identified. The impact is limited to leaking commercial license metadata (account/subscription/pool identifiers, SKU, support level, instance counts) to already-authenticated users - it does not grant new access, credentials, or code execution. The realistic risk is reconnaissance and social-engineering enablement rather than direct compromise; the 'Authentication Bypass' tag overstates it, since exploitation actually REQUIRES a valid authenticated session (CWE-862 broken authorization, not authentication bypass). No signals conflict, and no data indicates elevated real-world urgency. |
| Exploit ScenarioDerived | An attacker with any low-privilege authenticated account on the Ansible Automation Platform controller sends a GET request to /api/v2/config/ and reads the license_info block, which is not covered by the superuser/auditor gate. No public exploit is required - a single authenticated API call returns account_number, subscription_id, pool_id, SKU, support level, and instance counts, which the attacker uses to size the estate and craft convincing social-engineering pretexts against Red Hat support. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Authenticated users of Red Hat Ansible Automation Platform 2 can read sensitive commercial license metadata - account number, subscription ID, pool ID, SKU, support level, and instance counts - from the /api/v2/config/ endpoint, which is guarded only by Django REST Framework's IsAuthenticated permission class. The superuser/auditor gate that protects other configuration keys such as project_base_dir, project_local_paths, and custom_virtualenvs does not extend to the license_info block, so any logged-in account of any privilege level can retrieve it without user interaction or non-default configuration. Per the independent assessment this is a genuinely low-priority, information-disclosure issue (CVSS 4.3, PR:L) - no public exploit has been identified at time of analysis, and the practical risk is reconnaissance and social-engineering enablement against Red Hat support rather than direct compromise.
RemediationAI
No vendor-released patch version is identified in the available intelligence, so the first action is to consult the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-71460 and the Bugzilla record at https://bugzilla.redhat.com/show_bug.cgi?id=2512369 for the current errata and upgrade target, then apply the fixed automation-controller package for your AAP 2 release as soon as it is published. In the interim, apply compensating controls that directly address the missing authorization: (1) restrict access to /api/v2/config/ at a reverse proxy, API gateway, or WAF so that only administrators/superusers reach it - the trade-off is that any legitimate UI, CLI, or integration feature that reads configuration keys from that endpoint for ordinary users will break, so scope the rule by path plus role where possible rather than blocking the endpoint outright; (2) where a proxy-layer filter is available, strip or mask the license_info object from responses to non-privileged callers, which mitigates the metadata leak while leaving the rest of the configuration readable, at the cost of maintaining a custom response-rewrite rule; (3) tighten identity hygiene by removing or disabling unused accounts and reviewing which principals genuinely need API access, since the only precondition is any authenticated login - this reduces the attacker pool but eliminates no risk from existing legitimate users; and (4) monitor controller and proxy logs for repeated or anomalous GET requests to /api/v2/config/ as a reconnaissance indicator, generating detection signal that can help identify interest in the entitlement data even where access cannot be fully closed.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerable component is the automation-controller API of Red Hat Ansible Automation Platform 2 (per the CPE cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2, wildcarded for all versions). The endpoint /api/v2/config/ is a Django REST Framework view whose permission enforcement consists solely of IsAuthenticated, meaning any principal holding a valid API session or token passes the check. Root cause is CWE-862 (Missing Authorization): the code applies a stricter superuser/auditor permission gate to some response keys (project_base_dir, project_local_paths, custom_virtualenvs) but fails to apply the same gate to the license_info object, which is serialized and returned to the caller regardless of role. The leaked fields are commercial/entitlement metadata rather than secrets or credentials: account number, subscription_id, pool_id, SKU, support_level, and instance counts. Because the CVSS vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, the exposed data is limited to confidentiality impact and does not by itself permit privilege escalation, code execution, or data modification; its value to an attacker is contextual - identifying entitlement size and support contract details that can be used for pretexting Red Hat support or estate-sizing reconnaissance.
Know when Django gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Any authenticated user (PR:L) can read the endpoint over the network with a single request; only low-sensitivity license metadata is exposed (C:L), with no integrity or availability impact.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
/api/v2/config/ is protected only by IsAuthenticated. license_info (account_number, subscription_id, pool_id, sku, support_level, instance counts) returned to any authenticated user. The superuser/auditor gate only covers project_base_dir/project_local_paths/custom_virtualenvs, not license_info. Enables social engineering against Red Hat support and estate sizing reconnaissance.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
The package python/cpython from 0 and before 3.6.13, from 3.7.0 and before 3.7.10, from 3.8.0 and before 3.8.8, from 3.9
In Django 1.10.x before 1.10.8 and 1.11.x before 1.11.5, HTML autoescaping was disabled in a portion of the template for
An issue was discovered in Django 3.2 before 3.2.14 and 4.0 before 4.0.6. Rated critical severity (CVSS 9.8), this vulne
Django 3.1.x before 3.1.13 and 3.2.x before 3.2.5 allows QuerySet.order_by SQL injection if order_by is untrusted input
Django before 1.11.27, 2.x before 2.2.9, and 3.x before 3.0.1 allows account takeover. Rated critical severity (CVSS 9.8
An authentication/authorization bypass in the djust Python live-view framework (versions prior to 1.0.7) lets unauthenti
Unauthenticated arbitrary Python module import in djust before 1.0.7 lets any client that can reach the WebSocket or SSE
Django 1.11 before 1.11.29, 2.2 before 2.2.11, and 3.0 before 3.0.4 allows SQL Injection if untrusted data is used as a
Cross-site scripting (XSS) vulnerability in the dismissChangeRelatedObjectPopup function in contrib/admin/static/admin/j
Forged content modification in django-page-cms through 2.0.13 lets unauthenticated remote attackers exploit five CSRF-ex
Cross-site request forgery in djust's Server-Sent-Events transport affects all versions prior to 1.0.7 and allows a cros
Unauthenticated remote attackers can read live Django view and session state and invoke server-side handlers through dju
EUVD-2026-85534
GHSA-8jrq-6pp4-m2h6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB