CVE-2019-10156: Exposure of Sensitive Information to an Unauthorized Actor in ansible
5.4
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.66025%
CWE
Published
7/31/2019
Updated
9/4/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
ansible | pip | < 2.6.18 | 2.6.18 |
ansible | pip | >= 2.7.0a1, < 2.7.12 | 2.7.12 |
ansible | pip | >= 2.8.0a1, < 2.8.2 | 2.8.2 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from how Ansible's templating engine handled variable substitution. The key changes in the patch:
- Removal of 'locals=self._available_variables' in the safe_eval call (init.py)
- Replacement of JSON_TYPES with a restricted OUR_GLOBALS (safe_eval.py)
These changes indicate that the original implementation allowed template evaluation to access arbitrary variables via the 'locals' parameter passed to safe_eval. The vulnerable functions directly participated in this insecure evaluation flow by providing excessive context to the evaluator.