Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticated access to Controller API
-
ExploitInject forged X-Forwarded-For header
-
ExecutionController records attacker-chosen client IP
-
ImpactAudit/SIEM attribution corrupted
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V6 - Authentication IP-independent access control
|
| Exploitation Conditions | Exploitation requires the shipped/default production reverse-proxy configuration of automation-controller, in which the application trusts the client-supplied X-Forwarded-For header and selects the leftmost value without validating that the connection originated from a trusted proxy. The attacker must be able to send HTTP requests to the Controller whose activity is recorded in its audit/access logs (PR:L). Limiting factors: the impact is confined to integrity of logged source-IP attribution (I:L) with no confidentiality or availability effect and no gain of access; deployments that have overridden the header-trust configuration to only honor XFF from known proxies, or that record the true socket peer IP, are not affected. |
| Impact | This is a genuinely low-priority, low-real-risk issue despite the MEDIUM label. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N, score 4.3, Red Hat self-reported) is internally consistent with the CWE-348 (Use of a Less Trusted Source) description: the sole impact is I:L (integrity of log attribution), with C:N and A:N, and the description explicitly states 'The flaw does not grant additional access.' No EPSS score, no CISA KEV listing, and no public POC are present in the input, so exploitation is neither confirmed nor probabilistically ranked - the SSVC/EPSS signals are simply absent rather than conflicting. PR:L is appropriate because forging X-Forwarded-For to pollute the audit trail is only meaningful in the context of an actor already interacting with the Controller whose actions are being logged; the real-world value is forensic evasion/misdirection, not access gain. Net: this is a defense-in-depth/log-integrity hardening item, not an emergency-patch situation. One note for verification: the CVSS vector marks S:U, which is reasonable since only the Controller's own logs are affected, but organizations that forward these logs into a shared SIEM should recognize the downstream analytical impact even though CVSS does not treat it as a scope change. |
| Exploit ScenarioDerived | An attacker who can reach the automation-controller web API (and, per PR:L, has some level of access whose requests are being logged) adds a spoofed X-Forwarded-For header such as 'X-Forwarded-For: 10.0.0.5' to their requests; because the shipped production config trusts the leftmost, client-supplied value without validating it came from a trusted proxy, the Controller records the forged IP in its audit and access logs. The attacker thereby attributes their activity to an innocent or non-existent host, frustrating incident response and SIEM correlation. No public POC is identified at time of analysis, and the technique confers no additional access. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Source-IP spoofing in Ansible Automation Platform 2's automation-controller allows an authenticated remote attacker to forge the client IP recorded in audit and access logs when the application runs its shipped production reverse-proxy configuration and trusts the client-supplied X-Forwarded-For header. The flaw is CWE-348 and only affects log integrity (CVSS 3.1 4.3, AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N), with no access, confidentiality, or availability gain. No public exploit identified at time of analysis and no confirmed active exploitation (CISA KEV).
RemediationAI
No vendor-released patch version is identified in the provided data; monitor Red Hat advisory https://access.redhat.com/security/cve/CVE-2026-84718 for a fixed release and update automation-controller when available. As a compensating control, disable trust of client-supplied X-Forwarded-For in the Controller's reverse-proxy configuration and configure it to use only XFF values added by known/trusted proxies or the true socket peer IP; ensure the front proxy strips and rewrites XFF from untrusted clients. Trade-off: changing proxy-trust logic can affect log accuracy and geo/IP-based features if not aligned with the actual proxy chain. Restrict network access to the Controller's API and UI to trusted management networks to reduce who can send forged requests. These controls address log-integrity risk only; because the flaw grants no access or data impact, emergency patching is not warranted based on this assessment.
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 issue is in automation-controller, a component of Red Hat Ansible Automation Platform 2. It uses reverse-proxy headers for client IP detection. X-Forwarded-For is a de facto standard header that proxies append to; applications should trust only values added by known proxies, typically selecting the rightmost untrusted value or using the socket peer address. In the shipped production configuration, the Controller trusts the client-supplied header and selects the leftmost value, which an attacker can set arbitrarily. This maps to CWE-348 (Use of Less Trusted Source). The CPE data identifies red_hat:red_hat_ansible_automation_platform_2 as the affected product, but versions are wildcarded. The independent assessment rates real-world risk as low because impact is confined to forensic/SIEM attribution integrity and no access is granted.
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:N/I:L/A:N
Network-reachable API with trivial header forgery (AV:N/AC:L); PR:L as the actor's own logged requests are the target; only log-attribution integrity is harmed (I:L), no C/A impact, scope unchanged.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
A flaw was found in the Ansible Automation Platform automation-controller. In the shipped production configuration, the Controller trusts the client-supplied X-Forwarded-For header as the request's client IP without verifying that it originated from a trusted proxy, and selects the leftmost (attacker-controlled) header value. As a result, an attacker can forge the source IP address recorded for their requests in the Controller's audit and access logs, degrading the integrity of forensic and SIEM attribution. The flaw does not grant additional access.
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-85613
GHSA-fxxq-29xm-f392
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB