CVE-2026-84719
Executive Summary
CVE-2026-84719 is a missing-authorization flaw (CWE-862) in the Ansible Automation Platform automation-controller, reachable through the WorkflowJobTemplate copy operation. When a workflow job template is deep-copied, the permission sanitizer validates only the inventory, unified_job_template, and credentials attributes of each cloned node, but fails to re-validate the instance_groups, execution_environment, and labels carried over from the source object. A user holding organization workflow-admin permission — but no role on the referenced instance groups — can therefore copy a workflow, become its administrator, and launch jobs pinned to instance groups they are not entitled to use, including the control-plane instance group.
The impact is a privilege/authorization boundary bypass with Scope:Changed in the CVSS vector (9.9 Critical). Because jobs can be pinned to the control-plane instance group, attacker-influenced automation executes inside the control-plane execution context — a trust boundary that normally isolates cluster management from tenant workloads. The vulnerability is network-reachable, low-complexity, requires only low privileges, and needs no user interaction. No public PoC, exploit code, or Nuclei template exists; FIRST.org has not yet assigned an EPSS score; the CVE is not in CISA KEV. No patch is available as of this report.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The automation-controller stores workflow job templates as hierarchical objects: a parent WorkflowJobTemplate contains one or more workflow nodes, and each node references a job template (unified_job_template) along with associated execution attributes such as inventory, credentials, instance_groups, execution_environment, and labels. When an authorized user issues a copy operation against a WorkflowJobTemplate, the controller performs a deep-copy of the entire node tree.
Critically, before the clone is persisted, a deep-copy permission sanitizer is meant to strip or reject any referenced object that the requesting user does not have rights to. Per the NVD description, this sanitizer only validates three reference types per cloned node:
inventoryunified_job_templatecredentials
It does not validate:
instance_groupsexecution_environmentlabels
These three preserved attributes survive the copy intact. The security consequence concentrates on instance_groups, because an instance_group in the automation-controller is the unit that maps a job to a physical/logical execution pool — and the control-plane instance group is the privileged pool used for cluster management operations. Access to an instance group is normally governed by the InstanceGroup use_role RBAC boundary. By preserving instance_groups on the clone without check, the copy operation silently inherits use_role-equivalent access the attacker never held.
The authorization model therefore diverges at the copy path: the user is legitimately allowed to copy (they hold org-level workflow-admin), but the deep-copy sanitizer omits the very attribute check (instance_groups) that would otherwise be required before a job could be launched against that pool. The result is a missing authorization check (CWE-862) on a security-relevant attribute during object duplication — a classic "clone inherits privileges" pattern.
Because Scope:Changed (S:C) is set in the CVSS vector, the flaw crosses a security authority boundary: code executing in the control-plane context operates under a different (more privileged) authorization scope than the attacker's originating context. The AV:N/AC:L/PR:L/UI:N subscores confirm remote, low-complexity, low-privilege, no-interaction exploitation. Confidentiality, Integrity, and Availability are all rated High.
No function names, class names, URL endpoints, or parameter names beyond those explicitly stated — WorkflowJobTemplate, inventory, unified_job_template, credentials, instance_groups, execution_environment, labels, InstanceGroup, use_role — are asserted here; additional implementation detail is not available from the source data.
Exploitation Scenarios
No public PoC is available; the attack chain below is inferred strictly from the vulnerability class (CWE-862 missing authorization on a deep-copy path) and the explicit attribute names in the NVD description.
1) Reconnaissance / target identification. The attacker authenticates to the automation-controller with an account that holds organization workflow-admin permission. They enumerate existing WorkflowJobTemplate objects (the API and web UI both expose workflow templates to authorized users), and identify a workflow whose nodes are pinned to an instance_group they do not hold use_role on — ideally one pinned to the control-plane instance group.
2) Triggering the flaw class. The attacker invokes the copy operation on the target WorkflowJobTemplate. The deep-copy permission sanitizer runs and validates only the inventory, unified_job_template, and credentials references of each cloned node. Because instance_groups (along with execution_environment and labels) is not in the validator's scope, those references are copied verbatim onto the new workflow. The check that would normally enforce the InstanceGroup use_role boundary is never reached for these attributes.
3) Payload / execution method (vulnerability-class level). The attacker now owns a copied workflow that still references the unauthorized instance group, and — by virtue of being its creator/administrator — can edit its nodes and launch it. Jobs launched from the clone are pinned to the inherited instance group, so execution is dispatched to a pool the attacker was never authorized to use. Where that pool is the control-plane instance group, the job runs in the control-plane execution context rather than a tenant-isolated execution context. The "payload" is whatever automation the attacker defines in the node — the flaw is about where it executes, not a memory-corruption primitive.
4) Post-exploitation impact. Execution inside the control-plane execution context allows attacker-influenced automation to run with the authority and environment associated with cluster-management execution. Depending on what that context exposes, an attacker could read or modify sensitive material reachable from the control-plane pool, interfere with controller operations, or pivot into further privileged actions. Because Scope:Changed is set, the boundary crossed is an authorization-scope boundary, not merely a data boundary.
Constraints. This requires a pre-existing low-privilege account (org workflow-admin) and the presence of a copyable workflow referencing a target instance group. No user interaction is required and no public exploit exists.
Impact Assessment
- CVSS v3.1: 9.9 (Critical) —
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H. - Attack Vector / Complexity: Network / Low — exploitable over the controller's normal API/web interface with no special conditions.
- Privileges Required: Low — the attacker only needs organization workflow-admin.
- User Interaction: None.
- Scope: Changed — the vulnerable component's authorization scope is exceeded; the attacker's automation executes in a different (control-plane) authorization context.
- Confidentiality / Integrity / Availability: High / High / High.
Business impact. The Ansible Automation Platform controller frequently holds cluster-wide credentials and orchestrates configuration across managed estates. Allowing attacker-influenced automation to run in the control-plane execution context undermines the isolation that separates cluster management from tenant workloads. This can translate to unauthorized access to secrets reachable by the control plane, unauthorized modification of infrastructure state, and potential disruption of controller availability.
Affected systems. Deployments of the Ansible Automation Platform automation-controller that implement WorkflowJobTemplate deep-copy with the described sanitizer behavior. No package versions are enumerated in the provided data (Affected Versions: []), so a precise version range cannot be stated; assume all versions exhibiting the unvalidated instance_groups copy behavior are in scope until the vendor publishes a fixed release.
Blast radius. Any organization where a workflow-admin user exists and where at least one workflow references an instance group that user does not legitimately hold use_role on. The presence of a control-plane instance group reference in a copyable workflow elevates a routine RBAC misconfiguration into a Critical-severity cross-boundary issue. EPSS is not yet scored; CISA KEV status is NO (no confirmed in-the-wild exploitation).
Detection Guidance
Sigma Rule
title: Ansible automation-controller WorkflowJobTemplate Copy Inheriting Instance Groups
id: 8f4c2a10-3b7e-4d92-9a1c-ansible-cve-2026-84719
status: experimental
description: Detects copy operations on WorkflowJobTemplate objects in Ansible Automation Platform automation-controller that may preserve unauthorized instance_groups (CVE-2026-84719)
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-84719
author: valtersit.com
date: 2026/01/01
tags:
- attack.t1078
- attack.privilege_escalation
logsource:
product: ansible
service: automation-controller
detection:
selection_copy:
event_type: 'workflow_job_template_copy'
selection_attrs:
copied_attribute:
- 'instance_groups'
- 'execution_environment'
- 'labels'
condition: selection_copy and selection_attrs
falsepositives:
- Legitimate administrators copying workflows across instance groups they are entitled to use
level: high
YARA Rule
rule CVE_2026_84719_Ansible_Workflow_Copy_Sanitizer_Bypass
{
meta:
description = "Detects references consistent with WorkflowJobTemplate deep-copy that preserves instance_groups/execution_environment/labels in Ansible automation-controller (CVE-2026-84719)"
author = "valtersit.com"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-84719"
date = "2026-01-01"
severity = "critical"
strings:
$wf = "WorkflowJobTemplate" ascii
$ig = "instance_groups" ascii
$ee = "execution_environment" ascii
$lb = "labels" ascii
$cpy = "copy" ascii nocase
condition:
$wf and $cpy and (($ig and $ee) or ($ig and $lb))
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-84719 Ansible automation-controller WorkflowJobTemplate copy with instance_groups"; flow:established,to_server; http.method; content:"POST"; http.uri; content:"/workflow_job_templates/"; content:"copy"; http.uri; content:"instance_groups"; http.request_body; classtype:attempted-privilege-escalation; reference:cve,2026-84719; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-84719; sid:2026847190; rev:1;)
Elastic Detection
sequence by user.name, source.ip with maxspan=5m
[any where event.action == "workflow_job_template_copy" and
process.name : "automation-controller"]
[any where event.action == "workflow_job_launch" and
wildcard(instance_group.name, "*control-plane*")]
Splunk SPL Query
index=ansible sourcetype=automation_controller
| search (action="copy" OR event="workflow_job_template_copy" OR message="*WorkflowJobTemplate*copy*")
| rex field=_raw "(?<wf_copy>WorkflowJobTemplate[^ ]*copy)"
| search instance_groups="*" OR execution_environment="*" OR labels="*"
| stats count min(_time) as first_seen max(_time) as last_seen
values(instance_groups) as instance_groups
values(user) as user
by wf_copy, src_ip
| where count > 0
| sort - count
Wazuh OSSEC Rule
<group name="ansible,automation_controller,cve-2026-84719,">
<rule id="100847" level="12">
<decoded_as>json</decoded_as>
<field name="event_type">workflow_job_template_copy</field>
<description>CVE-2026-84719: Ansible automation-controller WorkflowJobTemplate copy may inherit unauthorized instance_groups/execution_environment/labels.</description>
<mitre>
<id>T1078</id>
</mitre>
<group>privilege_escalation,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 — UNPATCHED. No patch evidence exists from any tracked source; there is no vendor fix and no documented fixed version. EPSS is not yet scored and the CVE is not in CISA KEV.
1) Immediate mitigations.
- Restrict the population of users holding organization workflow-admin permission to the minimum necessary; audit and remove standing workflow-admin grants.
- Inventory
WorkflowJobTemplateobjects that reference instance groups — especially the control-plane instance group — and either unpin or make their copyability restricted to fully-trusted administrators. - Monitor for workflow copy operations followed by jobs launched against unexpected instance groups (see Detection Guidance); the copy-then-launch pattern is the key behavioral indicator.
- Where feasible, treat the control-plane instance group as strictly separate and prevent workflows designed for tenant execution from referencing it, so that a copied workflow has nothing privileged to inherit.
2) Patch / upgrade steps.
No patched release is available. Track the Red Hat / Ansible Automation Platform security advisories and the NVD entry for CVE-2026-84719. When the vendor publishes a fixed automation-controller release, upgrade promptly and re-validate that the deep-copy permission sanitizer now checks instance_groups, execution_environment, and labels in addition to inventory, unified_job_template, and credentials. Maintain an approved-version baseline and treat any preserved privileged attribute on a cloned workflow as a regression.
3) Long-term hardening.
- Enforce least privilege on
InstanceGroupuse_roleand organization-level roles; regularly reconcile role assignments so that the only users who can reach the control-plane instance group are dedicated administrators. - Apply the principle that object clone/copy operations must re-evaluate every security-relevant reference, not a hard-coded subset, as a coding standard in RBAC-sensitive components.
- Deploy compensating controls: log all workflow template copies and job launches with full attribute context, alert on cross-instance-group launches, and periodically review whether any tenant workflow references a privileged pool.
- Consider organizational separation between control-plane management and tenant automation to limit the blast radius if this class of missing-authorization flaw recurs.
References
- NVD — CVE-2026-84719: https://nvd.nist.gov/vuln/detail/CVE-2026-84719
- MITRE CWE-862 — Missing Authorization: https://cwe.mitre.org/data/definitions/862.html
- Red Hat Product Security advisories for Ansible Automation Platform (monitor for the fix): https://access.redhat.com/security/security-updates/
- Ansible Automation Platform / automation-controller documentation (WorkflowJobTemplate and instance group RBAC): https://docs.ansible.com/automation-controller/
- CISA Known Exploited Vulnerabilities Catalog (CVE-2026-84719 not listed as of this report): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
No public threat-actor campaign or exploit-in-the-wild evidence is associated with CVE-2026-84719 in the provided data.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.