CVE-2026-123036Red Hat ansible-core error message exposure
CVE-2026-123036 is a error message exposure in Red Hat ansible-core, rated medium (5.5 on CVSS 3.1).
Why this priority: Medium severity, with no exploitation signal.
Published · Updated · NVD status: Awaiting Analysis
What it is
Error messages reveal internal details useful to an attacker.
How it is reached
An attacker can exploit it by someone who can already run code or sign in on the machine, with an ordinary user account, and nobody has to click anything.
What an attacker gains
A successful attack can read the data it protects. In practice, this kind of flaw lets an attacker learn data or internals that help a follow-up attack.
Is it being exploited?
There is no public report of exploitation yet. EPSS estimates a 0.15% chance of exploitation activity in the next 30 days, higher than 4% of scored CVEs.
What to do
- Upgrade Red Hat ansible-core to 2.23.0 or later.
- Limit who can run code or sign in on the hosts that run it.
Description from NVD
A flaw was found in ansible-core. When a task marked `no_log: 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._handle_exception. 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 no_log: 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.
What this means for your architecture.
A CVE names a product. Whether it matters depends on where that product sits in your systems: what reaches it, which trust boundary it guards and what it can reach once compromised. Veriom maps your components, their relationships and your trust boundaries from your code, cloud and delivery evidence, so you can see where a component like this sits. The radar itself does not look at your systems.
Components it touches
- Error responses, logs and debug endpoints. The flaw sits between internal data and whoever can read the response or log.
- APIs that over-share. The flaw sits between internal data and whoever can read the response or log.
Trust boundaries in play
- Host boundary. The attacker needs a foothold on the machine first; the flaw turns a small foothold into a bigger one.
- Between internal data and whoever can read the response or log. An attacker who crosses it can learn data or internals that help a follow-up attack.
Questions to answer about your own systems
- Where does Red Hat ansible-core run in your systems, and at which version?
- Which of those hosts also run code or users you do not fully trust?
- What can it reach once compromised: which data stores, secrets and services?
Sources
- CVE records and CVSS scores from the NVD CVE API. This product uses the NVD API but is not endorsed or certified by the NVD.
- Exploitation status from CISA’s Known Exploited Vulnerabilities catalog.
- Exploit likelihood from FIRST’s Exploit Prediction Scoring System (EPSS), refreshed daily.
- Explanations are written by Veriom from fixed templates over each record’s data, not by a person reviewing each CVE. Descriptions are quoted from the records as published.