Skip to main content
Vulnerability Database/CVE-2026-84714

CVE-2026-84714: Automation Controller Jinja RCE Vulnerability

CVE-2026-84714 is a remote code execution flaw in automation-controller that exploits input validation bypass in sanitize_jinja() function. Attackers can inject malicious Jinja code to execute arbitrary commands and access secrets. This article covers technical details, affected versions, impact assessment, and mitigation strategies.

Published:

CVE-2026-84714 Overview

A flaw in the Ansible automation-controller sanitize_jinja() input-validation guard allows low-privileged users to bypass Jinja template filtering. The function relies on two regular expressions that stop matching at the first interior } or % character. An attacker can craft Jinja expressions containing inner braces, such as an empty dict, that bypass the filter while remaining valid templates that ansible-core evaluates at runtime. The vulnerability affects launch-time fields including ad-hoc command module_args, Machine-credential username, become_method, become_user, and inventory host names.

Critical Impact

Low-privileged users can execute arbitrary commands in the execution environment, bypass the AD_HOC_COMMANDS module allowlist, and disclose secrets from credentials they cannot directly read.

Affected Products

  • Red Hat Ansible Automation Platform (automation-controller component)
  • Deployments referenced in advisories RHSA-2026:71113, RHSA-2026:71114, RHSA-2026:71177, and RHSA-2026:71179
  • Environments relying on sanitize_jinja() as the sole input guard for launch-time fields

Discovery Timeline

  • 2026-09-23 - CVE-2026-84714 published to NVD
  • 2026-09-24 - Last updated in NVD database

Technical Details for CVE-2026-84714

Vulnerability Analysis

The defect is classified as an incomplete list of disallowed inputs [CWE-184]. The sanitize_jinja() function is intended to reject any user-supplied Jinja before ansible-core evaluates it. Its two regular expressions terminate at the first interior } or %, so payloads containing an inner brace slip through validation. Because sanitize_jinja() is the only guard on several launch-time input fields, the bypass grants Jinja evaluation in the execution environment where the controller runs playbook workloads.

An authenticated low-privileged user can leverage the bypass to run arbitrary commands, breaking the administrator-enforced AD_HOC_COMMANDS module allowlist. The same primitive enables cross-boundary secret disclosure: by templating a co-attached credential's injected environment variables, an attacker reads secrets belonging to credentials they lack read access to.

Root Cause

The root cause is a regular-expression design flaw. The patterns used by sanitize_jinja() are non-greedy against } and % characters and treat the first occurrence as the end of a Jinja construct. Valid Jinja containing nested braces, for example an expression that includes an empty dict literal {}, therefore parses as harmless input at the guard while remaining executable Jinja downstream in ansible-core.

Attack Vector

The attack requires network access and low privileges on the automation-controller. An attacker submits a launch-time request that populates one of the vulnerable fields (ad-hoc module_args, Machine-credential username, become_method, become_user, or inventory host names) with a Jinja payload containing an inner brace. The controller stores and forwards the value to the execution environment, where ansible-core renders the template and executes the resulting expression. See the Red Hat CVE Details for CVE-2026-84714 and Red Hat Bug Report #2527198 for reference material.

Stop Remote Code Execution Before It Runs

Singularity™ Endpoint detects and blocks exploit attempts at machine speed, including zero-days and novel attack techniques.

Stop Exploit Attempts

Detection Methods for CVE-2026-84714

Indicators of Compromise

  • Ad-hoc command jobs whose module_args values contain Jinja delimiters ({{, }}, {%, %}) alongside inner braces such as {}
  • Machine-credential records where username, become_method, or become_user fields contain Jinja syntax
  • Inventory host names containing template expressions rather than valid hostnames or IP addresses
  • Job output referencing environment variables belonging to credentials the launching user does not own

Detection Strategies

  • Audit automation-controller API request bodies for launch-time fields that contain {{, }}, {%, or %} sequences
  • Correlate ad-hoc command executions against the configured AD_HOC_COMMANDS allowlist and alert on modules outside the allowlist
  • Review job event logs for unexpected shell commands, subprocess spawns, or credential-material references inside rendered templates

Monitoring Recommendations

  • Forward automation-controller job and audit logs to a centralized analytics platform for retention and query
  • Alert on execution-environment processes launching interactive shells or network utilities outside expected playbook activity
  • Monitor for anomalous read access to credential-injected environment variables during job runs

How to Mitigate CVE-2026-84714

Immediate Actions Required

  • Apply the fixes shipped in RHSA-2026:71113, RHSA-2026:71114, RHSA-2026:71177, and RHSA-2026:71179 as they apply to your deployment
  • Rotate any credentials that may have been exposed through templated environment-variable disclosure
  • Review recent ad-hoc command history and job templates for suspicious Jinja payloads

Patch Information

Red Hat has published patched packages for the automation-controller through the advisories listed above. Consult the Red Hat CVE Details for CVE-2026-84714 page to match the correct erratum to your Ansible Automation Platform version and channel before deploying.

Workarounds

  • Restrict automation-controller access to trusted operators until patches are applied
  • Remove or tightly scope low-privileged user roles that can launch ad-hoc commands or edit inventory host entries
  • Detach shared credentials from projects where untrusted users can submit launch-time input, limiting cross-boundary secret exposure
bash
# Verify the installed automation-controller package version against the fixed release
rpm -q automation-controller

# Apply the vendor security errata
sudo dnf update --advisory=RHSA-2026:71113 --advisory=RHSA-2026:71114 \
                --advisory=RHSA-2026:71177 --advisory=RHSA-2026:71179

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.