Database/Control plane, storage & DevOps
ansible-core: symlinked ~/.ssh lets an unprivileged user on a managed node escalate to root
Impact
Ansible is how most operators provision and patch GPU nodes, so every node in the fleet is a managed node. When a play runs the user module with generate_ssh_key enabled, User.ssh_key_gen() checks the target ~/.ssh with os.path.exists() only, which follows symlinks. An unprivileged local user on the managed node who replaces their ~/.ssh with a symlink to a root-writable directory gets the privileged module to write the generated key pair through that symlink and then chown both files to them. Dropping an attacker-owned file into a directory a scheduler reads - /etc/cron.daily - or into /etc/update-motd.d yields root on that node. On a multi-tenant GPU host, a tenant with shell on the node can turn the operator's own configuration run into local root. This is an incomplete fix of CVE-2024-9902.
Who can reach it
An unprivileged local user on an Ansible-managed node who can write their own home directory, and who must wait for (or induce) a privileged play that uses the user module with generate_ssh_key. No credentials on the control node are required.
What to do
Apply the ansible-core update from the Red Hat advisory on the control node - ansible-core is the component to patch, not the managed hosts. No node drain or reboot; the fix takes effect on the next play. Until patched, avoid generate_ssh_key in plays that target hosts with untrusted local users, or pre-create and own ~/.ssh for managed accounts. Red Hat lists the CVE against several products that bundle ansible-core (Ansible Automation Platform, ACM, OpenShift Service Mesh, Migration Toolkit); the flaw is in ansible-core itself.
References
Related entries
- JumpServer: Jinja2 injection in Applet Host fields executes commands on the control nodeCVE-2026-44845 · JumpServer (Applet Host deployment, Jinja2 template injection)Medium
- ansible-core git module: repository URL starting with a dash is parsed as a git option, enabling command executionCVE-2026-84503 · ansible-core (ansible.builtin.git module)Medium
- GlusterFS (glusterd management): An authenticated TLS client can use gluster cli --remote-host to add itself to theCVE-2018-10841 · GlusterFS (glusterd management)Medium
- Intel SPS (HECI subsystem compartmentalisation): Insufficient compartmentalisation in the HECI interfaceCVE-2021-0060 · Intel SPS (HECI subsystem compartmentalisation)Medium
- Dell CloudLink (cluster component exception handling): A highly privileged remote attacker performs unauthorizedCVE-2024-38482 · Dell CloudLink (cluster component exception handling)Medium
- Ansible Automation Controller: improper authorization lets a mounted service account token escalate privilegesCVE-2024-6840 · Ansible Automation Controller (Kubernetes service account token authorization)Medium
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.