Executive brief
The Nexmo module in Ansible, used for sending SMS messages via the Vonage/Nexmo API, contains a flaw that exposes sensitive API credentials. Although the module is configured to hide these secrets from standard logs, it incorrectly sends them as part of a web address (URL) during communication. This means anyone with access to system logs, network proxies, or monitoring tools could see the plain-text credentials, potentially allowing unauthorized access to the organization's Nexmo account.
Technical details
The nexmo.py module in Ansible's community.general collection fails to protect sensitive credentials during transmission. While 'api_key' and 'api_secret' are marked with 'no_log=True' to prevent them from appearing in Ansible's standard output, the module constructs a GET request where these parameters are URL-encoded into the query string. This results in the credentials being exposed in Ansible verbose output (-vvv), web server access logs, HTTP proxy logs, and SIEM/network inspection tools. An attacker with low-privileged access to these logs can retrieve the credentials. The recommended fix is to transition the module to use POST requests with credentials contained in the request body.
Affected products
- Ansible community.general nexmo module All versions prior to fix
- Red Hat Red Hat Enterprise Linux 8 rhc-worker-playbook, rhel-system-roles
- Red Hat Red Hat Enterprise Linux 9 rhel-system-roles
- Red Hat Red Hat Enterprise Linux 10 rhel-system-roles
Timeline
- 2026-06-15: disclosed: Initial report in Red Hat Bugzilla
- 2026-06-23: advisory: CVE published and NVD record created