Cloudanix VulnDB

CVE-2024-9902

Medium · 6.3

CVSS

6.3

EPSS

0.3%

Published

Nov 6, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A configuration tool can be tricked into letting an ordinary user secretly take over important files on a computer when an administrator manages that user's account.

Chainable
Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
High
Impact
Privilege Gain
Component
Application
Class
Privilege Escalation
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

An unprivileged user can cause the ansible-core user module, when executed by a privileged user against the unprivileged user's home directory, to silently create, replace, or take ownership of arbitrary files on any system path if the attacker has directory traversal permissions to the target.

Why it matters to the business

Attackers can tamper with critical system files or configuration on managed hosts, leading to unauthorized access, data integrity loss, or further compromise; the issue affects a very small number of downstream systems and has no active exploitation campaigns.

How an attack unfolds

An attacker with a low-privileged account prepares a home directory containing a symlink or path traversal that points to a desired target file; when an administrator later runs the user module to manage that account, the module follows the path and writes or chown's the target file under the attacker's control.

How to fix it

Upgrade salt packages on Ubuntu 14.04 LTS to 0.17.5+ds-1ubuntu0.1~esm1 and on Ubuntu 16.04 LTS to 2015.8.1+ds-2; apply the fixed versions immediately on any remaining affected systems.

How to confirm the fix worked

Confirm package versions match the listed fixed releases using the distribution package manager; test the user module against a non-privileged account in a lab environment and verify that attempts to influence external paths are rejected.

Typical attack path

  1. Obtain low-privileged local account on a managed system
  2. Create a directory structure with traversal permissions leading to a high-value target file
  3. Wait for or induce a privileged user to execute the user module against the account's home directory
  4. Gain ownership or contents control of the target file for persistence or escalation

How to detect it

Review automation logs and module execution history for unexpected file ownership changes or writes to sensitive paths originating from user module runs; correlate with user account creation or modification events.

What your security team should do

  • Patch all remaining Ubuntu 14.04 and 16.04 systems running salt to the stated fixed versions without delay
  • Audit playbooks and automation that invoke the user module and restrict execution to trusted operators
  • Monitor for any new reports of exploitation despite low EPSS and absence from KEV

The record

A flaw was found in Ansible. The ansible-core `user` module can allow an unprivileged user to silently create or replace the contents of any file on any system path and take ownership of it when a privileged user executes the `user` module against the unprivileged user's home directory. If the unprivileged user has traversal permissions on the directory containing the exploited target file, they retain full control over the contents of the file as its owner.

Affected packages

Ecosystem Package Introduced Fixed
PyPI ansible-core 0 2.14.18rc1
PyPI ansible-core 2.15.0b1 2.15.13rc1
PyPI ansible-core 2.16.0b1 2.16.13rc1
PyPI ansible-core 2.17.0b1 2.17.6rc1
PyPI ansible-core 2.18.0b1 2.18.0rc2
Chainguard ansible-operator 0 1.37.0-r0
Chainguard ansible-operator-compat 0 1.37.0-r0
Debian:11 ansible 0 No fix
Debian:11 ansible 0 2.10.7+merged+base+2.10.17+dfsg-0+deb11u2
Debian:12 ansible 0 5.4.0-1
Debian:12 ansible-core 0 No fix
Debian:13 ansible 0 5.4.0-1
Debian:13 ansible-core 0 No fix
Debian:13 ansible-core 0 2.18.0-1
Mageia:9 python-ansible-core 0 2.14.18-1.mga9
Red Hat:ansible_automation_platform:2.4::el8 ansible-core 0 1:2.15.13-1.el8ap
Red Hat:ansible_automation_platform:2.4::el8 automation-controller-venv-tower 0 0:4.5.13-1.el8ap
Red Hat:ansible_automation_platform:2.4::el9 ansible-core 0 1:2.15.13-1.el9ap
Red Hat:ansible_automation_platform:2.4::el9 automation-controller-venv-tower 0 0:4.5.13-1.el9ap
Red Hat:ansible_automation_platform:2.5::el8 ansible-core 0 1:2.16.13-1.el8ap
Red Hat:ansible_automation_platform:2.5::el9 ansible-core 0 1:2.16.13-1.el9ap
Red Hat:ansible_automation_platform_developer:2.4::el8 ansible-core 0 1:2.15.13-1.el8ap
Red Hat:ansible_automation_platform_developer:2.4::el8 automation-controller-venv-tower 0 0:4.5.13-1.el8ap
Red Hat:ansible_automation_platform_developer:2.4::el9 ansible-core 0 1:2.15.13-1.el9ap
Red Hat:ansible_automation_platform_developer:2.4::el9 automation-controller-venv-tower 0 0:4.5.13-1.el9ap
Red Hat:ansible_automation_platform_developer:2.5::el8 ansible-core 0 1:2.16.13-1.el8ap
Red Hat:ansible_automation_platform_developer:2.5::el9 ansible-core 0 1:2.16.13-1.el9ap
Red Hat:ansible_automation_platform_inside:2.4::el8 ansible-core 0 1:2.15.13-1.el8ap
Red Hat:ansible_automation_platform_inside:2.4::el9 ansible-core 0 1:2.15.13-1.el9ap
Red Hat:ansible_automation_platform_inside:2.5::el8 ansible-core 0 1:2.16.13-1.el8ap
Red Hat:ansible_automation_platform_inside:2.5::el9 ansible-core 0 1:2.16.13-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
Wolfi ansible-operator 0 1.37.0-r0
Wolfi ansible-operator-compat 0 1.37.0-r0
openSUSE:Tumbleweed ansible-core 0 2.17.6-1.1
openSUSE:Tumbleweed ansible-core-2.16 0 2.16.13-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
pypi ansible-core 2.15.0b1 No fix
pypi ansible-core 2.16.0b1 No fix
pypi ansible-core 2.17.0b1 No fix
pypi ansible-core 2.18.0b1 No fix

Related vulnerabilities