CVE-2026-71463 in Ansible Automation Platforminfo

Summary

by MITRE • 09/23/2026

Notification template Jinja AST whitelist only inspects static Getattr nodes. Dynamic subscripts (job['job'+'_env'])
and {% if job.id > 100 %} conditional gating bypass both
the AST check and the test-render (stub has small job.id). At runtime, the gated branch executes and exceptions write full tracebacks into notification body, which is POSTed to attacker-controlled webhook URL. Leaks install paths, Python version, source line numbers.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 09/23/2026

The vulnerability described constitutes a critical server-side template injection flaw within a Jinja2-based notification system, specifically arising from an insufficiently robust Abstract Syntax Tree (AST) whitelist mechanism. The core technical failure lies in the parser's limited scope of inspection; it exclusively validates static Getattr nodes while failing to adequately scrutinize dynamic subscripts or conditional logic structures that can alter execution flow at runtime. This architectural oversight allows attackers to bypass both the initial AST validation phase and subsequent test-rendering safeguards, which typically rely on stubbed data with constrained values such as small integers for job identifiers. By exploiting this gap, an attacker can construct payloads using dynamic attribute access patterns like job['job'+'_env'] or conditional gates that evaluate differently during actual execution compared to the sanitized testing environment.

The operational impact of this vulnerability is severe due to its ability to facilitate unauthorized information disclosure through error-based side channels. When a maliciously crafted template containing these bypassed constructs is processed, it triggers runtime exceptions because the expected attributes do not exist in the live context or are accessed incorrectly. Crucially, instead of returning generic error messages, the application logs full Python tracebacks directly into the notification body. Since this body is subsequently posted to a webhook URL controlled by the attacker via HTTP POST requests, these detailed stack traces are exfiltrated externally. This mechanism effectively turns the vulnerability into an out-of-band data leak channel, allowing remote code execution-like information gathering without requiring direct user interaction with the rendered output in a browser or client application.

The specific intelligence leaked through this traceback exposure includes sensitive infrastructure details such as absolute file system paths where the application is installed, the precise version of Python being executed by the backend service, and exact source line numbers within the codebase. This information significantly aids an attacker in mapping the target environment, identifying potential secondary vulnerabilities based on known issues for that specific software stack, and crafting more sophisticated exploits tailored to the underlying operating system or library versions. The exposure of internal directory structures can also reveal configuration files, backup directories, or other sensitive artifacts located outside the web root, further escalating the risk profile from mere information disclosure to full system compromise if combined with file inclusion vulnerabilities.

From a standards perspective, this vulnerability aligns closely with CWE-94 Improper Control of Generation of Code (Code Injection), specifically manifesting as Server-Side Template Injection where user input influences template execution logic in an unsafe manner. It also relates to CWE-209 Generation of Error Message Containing Sensitive Information, as the application fails to sanitize error outputs before transmission. In terms of attack tactics, this scenario maps to MITRE ATT&CK technique T1552 Unsecured Credentials or T1608 Staged Capabilities depending on subsequent exploitation steps, but primarily represents information gathering through Error-Based SQLi-like patterns adapted for template engines. The bypass of security controls via conditional gating is indicative of CWE-937 Improper Validation of Control Block Parameters, where the control flow logic evades static analysis checks.

Mitigation strategies must address both the immediate symptom and the underlying architectural weakness. First, error handling mechanisms should be reconfigured to suppress detailed stack traces in production environments, ensuring that only generic, non-descriptive error messages are returned or logged internally without being exposed via API responses or webhook payloads. Second, the AST whitelist validation logic requires a comprehensive overhaul to support dynamic subscripts and conditional expressions, ensuring that all potential execution paths are sanitized before template compilation. Implementing strict input validation on job identifiers and environment variables is essential. Furthermore, adopting safer templating practices such as using sandboxed environments for Jinja2 or switching to templates with limited expression capabilities can reduce the attack surface. Regular security audits focusing on dynamic content generation within notification systems will help prevent similar bypasses in the future.

Responsible

Redhat

Reservation

08/06/2026

Disclosure

09/23/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Interested in the pricing of exploits?

See the underground prices here!