CVE-2023-5115
Medium · 6.3CVSS
6.3
EPSS
1.0%
Published
Dec 18, 2023
CISA due date
—
Cloudanix analysis
A flaw in automation software lets attackers who trick you into running their code overwrite important files on the computer, which could break systems or let them take control.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Application
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Absolute path traversal via malicious Ansible role that uses a symlink to overwrite arbitrary files outside the intended extraction directory during role execution.
Why it matters to the business
Attackers can corrupt or replace critical system files, potentially causing service disruption, unauthorized access, or persistent compromise on affected Linux systems; the flaw affects widely used automation tooling with moderate exploit likelihood that has risen slightly in recent weeks.
How an attack unfolds
An attacker creates a malicious Ansible role containing a crafted symlink pointing outside the extraction path, then tricks a victim into executing the role; during extraction the symlink allows the attacker-controlled content to overwrite files elsewhere on the filesystem.
How to fix it
Upgrade affected Linux (Debian 11) systems to version 5.10.178-1 or later; validate that Ansible components are using the corrected package and re-test role execution workflows after patching.
How to confirm the fix worked
Confirm installed package versions match or exceed the fixed release; run controlled role extractions in a test environment and verify that symlinks no longer permit writes outside the intended path.
Typical attack path
- Craft a malicious Ansible role containing a symlink targeting a file outside the extraction directory
- Deliver the role to the victim through repository, collection, or direct sharing
- Victim executes the role via ansible-playbook or automation platform
- Symlink traversal overwrites the chosen target file during extraction
How to detect it
Search Ansible execution and extraction logs for role runs that reference symlinks or produce unexpected file-write events outside the role directory; correlate with system file-change monitoring for modifications to sensitive paths during automation tasks.
What your security team should do
- Immediately schedule upgrade of all Debian 11 systems to the fixed kernel package 5.10.178-1
- Review and restrict execution of untrusted Ansible roles and collections
- Implement monitoring for unexpected file modifications during automation runs
- Audit existing roles for symlink usage and remove or replace risky patterns
The record
An absolute path traversal attack exists in the Ansible automation platform. This flaw allows an attacker to craft a malicious Ansible role and make the victim execute the role. A symlink can be used to overwrite a file outside of the extraction path.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | ansible | 0 | 8.5.0 |
| Debian:10 | ansible | 0 | 2.7.7+dfsg-1+deb10u2 |
| Debian:11 | ansible | 0 | No fix |
| Debian:12 | ansible | 0 | 5.4.0-1 |
| Debian:12 | ansible-core | 0 | 2.14.16-0+deb12u1 |
| Debian:13 | ansible | 0 | 5.4.0-1 |
| Debian:13 | ansible-core | 0 | 2.14.11-1 |
| Red Hat:ansible_automation_platform:2.3::el8 | ansible-core | 0 | 0:2.14.11-1.el8ap |
| Red Hat:ansible_automation_platform:2.3::el8 | automation-controller-venv-tower | 0 | 0:4.3.16-1.el8ap |
| Red Hat:ansible_automation_platform:2.3::el9 | ansible-core | 0 | 0:2.14.11-1.el9ap |
| Red Hat:ansible_automation_platform:2.3::el9 | automation-controller-venv-tower | 0 | 0:4.3.16-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el8 | ansible-core | 0 | 0:2.15.5-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | automation-controller-venv-tower | 0 | 0:4.4.6-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python39-django | 0 | 0:3.2.22-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el8 | python3x-django | 0 | 0:3.2.22-1.el8ap |
| Red Hat:ansible_automation_platform:2.4::el9 | ansible-core | 0 | 0:2.15.5-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | automation-controller-venv-tower | 0 | 0:4.4.6-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python-django | 0 | 0:3.2.22-1.el9ap |
| Red Hat:ansible_automation_platform:2.4::el9 | python3-django | 0 | 0:3.2.22-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.3::el8 | ansible-core | 0 | 0:2.14.11-1.el8ap |
| Red Hat:ansible_automation_platform_developer:2.3::el9 | ansible-core | 0 | 0:2.14.11-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.4::el8 | ansible-core | 0 | 0:2.15.5-1.el8ap |
| Red Hat:ansible_automation_platform_developer:2.4::el9 | ansible-core | 0 | 0:2.15.5-1.el9ap |
| Red Hat:ansible_automation_platform_inside:2.3::el8 | ansible-core | 0 | 0:2.14.11-1.el8ap |
| Red Hat:ansible_automation_platform_inside:2.3::el9 | ansible-core | 0 | 0:2.14.11-1.el9ap |
| Red Hat:ansible_automation_platform_inside:2.4::el8 | ansible-core | 0 | 0:2.15.5-1.el8ap |
| Red Hat:ansible_automation_platform_inside:2.4::el9 | ansible-core | 0 | 0:2.15.5-1.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 |
| openSUSE:Tumbleweed | ansible-core | 0 | 2.16.9-1.1 |
| openSUSE:Tumbleweed | ansible-core-2.17 | 0 | 2.17.6-1.1 |
| openSUSE:Tumbleweed | ansible-core-2.18 | 0 | 2.18.10-2.1 |
| openSUSE:Tumbleweed | ansible-core-2.19 | 0 | 2.19.4-1.1 |
| openSUSE:Tumbleweed | ansible-core-2.20 | 0 | 2.20.6-1.1 |
Related vulnerabilities
- GHSA-8ggh-xwr9-3373 Ansible Community General Collection is vulnerable to exposure of sensitive information Also affects ansible
- CVE-2025-14010 A flaw was found in ansible-collection-community-general. Also affects ansible
- CVE-2024-11079 A flaw was found in Ansible-Core. Also affects ansible
- CVE-2024-9902 A flaw was found in Ansible. Also affects ansible
- CVE-2024-8775 A flaw was found in Ansible, where sensitive information stored in Ansible Vault files… Also affects ansible
- CVE-2024-0690 An information disclosure flaw was found in ansible-core due to a failure to respect the… Also affects ansible
- CVE-2023-5764 A template injection flaw was found in Ansible where a user's controller internal… Also affects ansible
- CVE-2024-45801 DOMPurify allows tampering by prototype pollution Also affects ansible-core