CVE-2023-4380
Medium · 6.3CVSS
6.3
EPSS
0.6%
Published
Oct 4, 2023
CISA due date
—
Cloudanix analysis
A bug in the automation platform can save secret login details in ordinary log files, allowing anyone who reads those logs to steal access to important systems and data.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw causes credentials supplied during private project creation to be written to logs in plaintext on authentication failure, exposing authentication secrets.
Why it matters to the business
Exposure of stored credentials can lead to unauthorized access to private repositories and downstream systems, enabling data theft, configuration tampering, or operational disruption across automation environments with many dependent projects.
How an attack unfolds
An attacker with read access to application logs locates entries generated by failed private-project creations, extracts the plaintext credentials, and reuses them to access linked repositories or execute further actions within the automation platform.
How to fix it
Upgrade to a patched release of Red Hat Ansible Automation Platform that prevents plaintext credential logging; until a fix is available, apply log redaction rules to mask credential fields and rotate any credentials previously used in private projects.
How to confirm the fix worked
Create test private projects with deliberately incorrect credentials and confirm that resulting log entries contain no plaintext secrets; scan historical logs for any prior occurrences of exposed credential strings.
Typical attack path
- Obtain read access to Ansible application or system logs
- Search logs for private project creation events containing authentication failures
- Extract the exposed plaintext credentials
- Authenticate to the referenced private repositories or services
How to detect it
Search application and system logs for private-project creation events paired with authentication failure messages; look for subsequent authentication attempts using the same credential values outside expected automation flows.
- private project.*credential
- incorrect credentials.*log
- plaintext.*password
- project creation.*auth failure
What your security team should do
- Immediately audit logs for any plaintext credentials from project creation events
- Rotate all credentials that may have been logged
- Implement log filtering or sanitization to prevent future plaintext exposure
- Monitor for availability of official patches and apply them promptly
The record
A logic flaw exists in Ansible Automation platform. Whenever a private project is created with incorrect credentials, they are logged in plaintext. This flaw allows an attacker to retrieve the credentials from the log, resulting in the loss of confidentiality, integrity, and availability.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Red Hat:ansible_automation_platform:2.4::el8 | automation-eda-controller | 0 | 0:1.0.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | automation-eda-controller-server | 0 | 0:1.0.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | automation-eda-controller-ui | 0 | 0:1.0.1-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-cryptography | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-cryptography-debuginfo | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-django | 0 | 0:3.2.20-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-requests | 0 | 0:2.31.0-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-cryptography | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-cryptography-debugsource | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-django | 0 | 0:3.2.20-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-requests | 0 | 0:2.31.0-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el9 | automation-eda-controller | 0 | 0:1.0.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | automation-eda-controller-server | 0 | 0:1.0.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | automation-eda-controller-ui | 0 | 0:1.0.1-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-cryptography | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-cryptography-debugsource | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-django | 0 | 0:3.2.20-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-cryptography | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-cryptography-debuginfo | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-django | 0 | 0:3.2.20-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | python39-cryptography | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | python39-cryptography-debuginfo | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | python3x-cryptography | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | python3x-cryptography-debugsource | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | python-cryptography | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | python-cryptography-debugsource | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | python3-cryptography | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | python3-cryptography-debuginfo | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | python39-cryptography | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | python39-cryptography-debuginfo | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | python3x-cryptography | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | python3x-cryptography-debugsource | 0 | 0:38.0.4-2.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | python-cryptography | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | python-cryptography-debugsource | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | python3-cryptography | 0 | 0:38.0.4-2.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | python3-cryptography-debuginfo | 0 | 0:38.0.4-2.el9ap |
| Ubuntu:20.04:LTS | ansible | 0 | No fix |
| Ubuntu:22.04:LTS | ansible | 0 | No fix |
| Ubuntu:22.04:LTS | ansible-core | 0 | No fix |
| Ubuntu:24.04:LTS | ansible | 0 | No fix |
| Ubuntu:24.04:LTS | ansible-core | 0 | No fix |
| Ubuntu:24.10 | ansible | 0 | No fix |
| Ubuntu:24.10 | ansible-core | 0 | No fix |
| Ubuntu:25.04 | ansible | 0 | No fix |
| Ubuntu:25.04 | ansible-core | 0 | No fix |
| Ubuntu:25.10 | ansible | 0 | No fix |
| Ubuntu:25.10 | ansible-core | 0 | No fix |
| Ubuntu:Pro:14.04:LTS | ansible | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | ansible | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | ansible | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | ansible | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | ansible | 0 | No fix |
Related vulnerabilities
- CVE-2023-52323 PyCryptodome and pycryptodomex before 3.19.1 allow side-channel leakage for OAEP… Also affects automation-eda-controller
- CVE-2023-49081 aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Also affects automation-eda-controller
- CVE-2023-49082 aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Also affects automation-eda-controller
- CVE-2024-35195 Requests is a HTTP library. Also affects python39-cryptography
- CVE-2024-34064 Jinja is an extensible templating engine. Also affects python39-cryptography
- CVE-2024-4340 Passing a heavily nested list to sqlparse.parse() leads to a Denial of Service due to… Also affects python39-cryptography
- CVE-2024-32879 Python Social Auth is a social authentication/registration mechanism. Also affects python39-cryptography
- CVE-2024-1135 Gunicorn fails to properly validate Transfer-Encoding headers, leading to HTTP Request… Also affects python39-cryptography