CVE-2026-11819

Severity CVSS v4.0:
Pending analysis
Type:
CWE-532 Information Exposure Through Log Files
Publication date:
23/06/2026
Last modified:
08/07/2026

Description

Module: plugins/modules/keyring_info.py <br /> <br /> CVSS 3.1: 5.5 MEDIUM — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N <br /> <br /> Issue: The module retrieves a passphrase from the OS native keyring (GNOME Keyring, macOS Keychain, Windows Credential Manager) and places it directly into result["passphrase"] with no output suppression, no no_log protection, and no documentation warning. <br /> <br /> Root Cause:<br /> <br /> Line 105 (protected): keyring_password=dict(type="str", required=True, no_log=True)<br /> Line 127 (NOT protected): result["passphrase"] = passphrase<br /> <br /> Observed Output:<br /> <br /> {<br /> "changed": false,<br /> "passphrase": "MyMasterP@ssw0rd!SSH_Key_Secret"<br /> }<br /> Visible via register + debug:<br /> {<br /> "keyring_result": {<br /> "changed": false,<br /> "passphrase": "MyMasterP@ssw0rd!SSH_Key_Secret"<br /> }<br /> }<br /> <br /> Impact: <br /> <br /> Master passwords, SSH key passphrases and service credentials appear in all Ansible output <br /> <br /> register: keyring_result followed by debug: var=keyring_result prints passphrase in full <br /> <br /> Ansible fact caching backends (Redis, JSON file, memcached) may persist the passphrase <br /> <br /> AWX/Tower job logs silently store the live credential<br /> <br /> Fix:<br /> <br /> module.exit_json(changed=False, passphrase=passphrase, _ansible_no_log=True)<br /> <br /> Also add a documentation warning requiring callers to use no_log: true at the task level.<br /> <br /> PoCs<br /> <br /> <br /> Fig 1: PoC execution showing passphrase in plaintext output<br /> <br /> <br /> Fig 2: Source code showing no_log=True on input (line 105) vs unprotected output (line 127)

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:redhat:enterprise_linux:10.0:*:*:*:*:*:*:*