Symlink following in Ansible-core user module allows root escalation
Key facts
- Attack vector
- Local
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Deferred Red Hat: fix deferred
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat.
Summary
The ansible-core user module in products such as Red Hat Ansible Automation Platform 2 and other products is affected. With generate_ssh_key enabled, the module checks the ~/.ssh directory only for existence and does not reject symlinks (CWE-59). A local user with low privileges on a managed node can redirect the key files through a symlink, then gain root through files run by cron or the dynamic MOTD. This is an incomplete fix of CVE-2024-9902.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
A flaw was found in the ansible-core user module. When generate_ssh_key is enabled, User.ssh_key_gen() guards the key files against symlinks but checks the ~/.ssh directory only with os.path.exists(). An unprivileged user on a managed node who replaces their ~/.ssh with a symlink to an existing root-writable directory causes the privileged module to write the generated key pair through the symlink and then chown both files to that user. Because such files can be dropped into directories processed by schedulers (e.g. /etc/cron.daily) or dynamic MOTD (/etc/update-motd.d), the user can escalate to root on the managed node. This is an incomplete fix of CVE-2024-9902.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Red Hat | Migration Toolkit for Applications 8 | — | — | No fix listed | CNA |
| Red Hat | Migration Toolkit for Virtualization | — | — | No fix listed | CNA |
| Red Hat | Migration Toolkit for Virtualization | — | — | No fix listed | CNA |
| Red Hat | OpenShift Service Mesh 3 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Advanced Cluster Management for Kubernetes 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Advanced Cluster Management for Kubernetes 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | Not affected | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform Ansible Core 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform Ansible Core 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform Ansible Core 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Ansible Automation Platform Ansible Core 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Discovery 2 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Enterprise Linux 10 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Enterprise Linux 8 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Enterprise Linux 9 | — | — | No fix listed | CNA |
| Red Hat | Red Hat OpenShift Container Platform 4 | — | — | No fix listed | CNA |
| Red Hat | Red Hat OpenShift Container Platform 5 | — | — | No fix listed | CNA |
| Red Hat | Red Hat Satellite 6 | — | — | No fix listed | CNA |
| Red Hat | Self-service automation portal 2 | — | — | No fix listed | CNA |
| Red Hat | Service Telemetry Framework 1.5 | — | — | No fix listed | CNA |
| Red Hat | Service Telemetry Framework 1.5 | — | — | No fix listed | CNA |
- Migration Toolkit for Applications 8 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Migration Toolkit for Virtualization VendorRed Hat Affected — Fixed in — No fix listed CNA
- Migration Toolkit for Virtualization VendorRed Hat Affected — Fixed in — No fix listed CNA
- OpenShift Service Mesh 3 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Advanced Cluster Management for Kubernetes 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Advanced Cluster Management for Kubernetes 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — Not affected CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform Ansible Core 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform Ansible Core 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform Ansible Core 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Ansible Automation Platform Ansible Core 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Discovery 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Enterprise Linux 10 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Enterprise Linux 8 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Enterprise Linux 9 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat OpenShift Container Platform 4 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat OpenShift Container Platform 5 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Red Hat Satellite 6 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Self-service automation portal 2 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Service Telemetry Framework 1.5 VendorRed Hat Affected — Fixed in — No fix listed CNA
- Service Telemetry Framework 1.5 VendorRed Hat Affected — Fixed in — No fix listed CNA
CPE names CNA · 15
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:/a:redhat:migration_toolkit_applications:8 | 8 | — | Red Hat |
| cpe:/a:redhat:migration_toolkit_virtualization:2 | 2 | — | Red Hat |
| cpe:/a:redhat:service_mesh:3 | 3 | — | Red Hat |
| cpe:/a:redhat:acm:2 | 2 | — | Red Hat |
| cpe:/a:redhat:ansible_automation_platform:2 | 2 | — | Red Hat |
| cpe:/a:redhat:ansible_core:2 | 2 | — | Red Hat |
| cpe:/a:redhat:discovery:2::el8 | 2 | — | Red Hat |
| cpe:/a:redhat:enterprise_linux:10 | 10 | — | Red Hat |
| cpe:/a:redhat:enterprise_linux:8 | 8 | — | Red Hat |
| cpe:/a:redhat:enterprise_linux:9 | 9 | — | Red Hat |
- cpe:/a:redhat:migration_toolkit_applications:8 Versions 8 — ·Red Hat
- cpe:/a:redhat:migration_toolkit_virtualization:2 Versions 2 — ·Red Hat
- cpe:/a:redhat:service_mesh:3 Versions 3 — ·Red Hat
- cpe:/a:redhat:acm:2 Versions 2 — ·Red Hat
- cpe:/a:redhat:ansible_automation_platform:2 Versions 2 — ·Red Hat
- cpe:/a:redhat:ansible_core:2 Versions 2 — ·Red Hat
- cpe:/a:redhat:discovery:2::el8 Versions 2 — ·Red Hat
- cpe:/a:redhat:enterprise_linux:10 Versions 10 — ·Red Hat
- cpe:/a:redhat:enterprise_linux:8 Versions 8 — ·Red Hat
- cpe:/a:redhat:enterprise_linux:9 Versions 9 — ·Red Hat
Remediation
The sources list no fixed version for Red Hat Ansible Automation Platform 2. Red Hat reports no fix available for Red Hat Enterprise Linux 9 and other affected products.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Migration Toolkit for Applications 8 | Affected | No fix yet: Fix deferred |
| Migration Toolkit for Virtualization | Affected | No fix yet: Fix deferred |
| OpenShift Service Mesh 3 | Affected | No fix yet: Fix deferred |
| Red Hat Advanced Cluster Management for Kubernetes 2 | Affected | No fix yet: Fix deferred |
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet: Fix deferred |
| Red Hat Ansible Automation Platform Ansible Core 2 | Affected | No fix yet: Fix deferred |
| Red Hat Discovery 2 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 10 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 8 | Affected | No fix yet: Fix deferred |
| Red Hat Enterprise Linux 9 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 4 | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Container Platform 5 | Affected | No fix yet: Fix deferred |
| Red Hat Satellite 6 | Affected | No fix yet: Fix deferred |
| Self-service automation portal 2 | Affected | No fix yet: Fix deferred |
| Service Telemetry Framework 1.5 | Affected | No fix yet: Fix deferred |
Not affected: 1 product
- Red Hat Ansible Automation Platform 2
Timeline
- 2026-11-06 Threatist record created from CVE-2026-123037
- 2026-11-06 Alias added: GHSA-cvj4-ggf5-jg54
- 2026-11-06 Affected versions changed · Red Hat
- 2026-11-06 CVSS score added · Red Hat
- 2026-11-06 CISA SSVC decision points changed
- 2026-11-06 Priority changed: MEDIUM → LOW
- 2026-11-06 Affected versions changed · CNA
- 2026-11-06 Affected versions changed · Red Hat
References
More Red Hat vulnerabilities
- TI-2019-15875 Protection mechanism failure in Jenkins Pipeline: Groovy Plugin KEVCVSS 3.1CRITICAL 9.9
- TI-2019-15874 Protection mechanism failure in Jenkins Script Security Plugin KEVCVSS 3.1CRITICAL 9.9
- TI-2019-08259 Underflow in PHP-FPM can lead to RCE KEVCVSS 3.1CRITICAL 9.8
- TI-2019-05363 Code injection in Elastic Kibana KEVCVSS 3.1CRITICAL 10.0
- TI-2019-03949 Out-of-bounds write in ESXi and Horizon DaaS KEVCVSS 3.1CRITICAL 9.8
- TI-2018-16080 A code execution vulnerability exists in the Stapler web framework used by Jenkins 2.153… KEVCVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-123037 · CVE Program
- CVE-2026-123037 · NVD
- FIRST EPSS
- GHSA-cvj4-ggf5-jg54 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-123037 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences