CVE-2026-123036: Medium severity vulnerability

Published Nov 5, 2026
·
Updated

A flaw was found in ansible-core. When a task marked nolog: true fails, the task result is censored before being emitted, but the exception field is retained because it is present in the PRESERVE allow-list in lib/ansible/internal/task.py, and the default stdout callback prints it through CallbackBase.handleexception. As a result, sensitive values the operator explicitly asked to hide can be disclosed: module argument-validation errors echo the argument value, templating errors print an Origin source snippet (the failing line plus the two preceding lines of the variables file, exposing neighbouring secrets from an -e @secrets.yml file), and fail/assert messages are printed in full. Secret material supplied as extra variables or variables files can therefore leak to terminal output, CI logs, and the stdout logs of any automation wrapping ansible-playbook, even though every task touching the secrets is marked nolog: true. This is a regression introduced with the ansible-core 2.19 data-tagging/templating rework; the behaviour does not occur on 2.16, where the error text is correctly censored.

Event History

Nov 5, 2026
CVE Published
via MITRE·09:38 AM
Data Sourced
via MITRE·09:38 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which ansible-core releases are known to be affected?

The behavior was introduced by the ansible-core 2.19 data-tagging and templating rework. It does not occur on ansible-core 2.16, where the error text is censored.

2

Is the default output configuration affected?

Yes. The default stdout callback prints the retained exception field through CallbackBase._handle_exception, allowing it to reach terminal output and any captured stdout logs.

3

What level of access is needed to exploit this issue?

The supplied CVSS vector rates the attack as local with low privileges required and no user interaction required. The exposure occurs when a no_log task fails and produces an exception containing sensitive content.

4

How can I check whether secrets may already have been exposed?

Review terminal output, CI logs, and stdout logs from automation for failed tasks marked no_log: true. Pay particular attention to argument-validation failures, templating errors involving variables files or extra variables, and fail or assert messages.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203