Every CVE Search/ Get API key

CVE-2026-123037

Ansible-core: user module generate_ssh_key follows a symlinked ~/.ssh enabling local privilege escalation (incomplete fix of cve-2024-9902)

6.7 Medium

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.

Attack profile

How easy it is to exploit

Attack vector
Local
Complexity
High
Privileges needed
Low
User interaction
Required

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.11%Unchanged since Nov 6, 2026
90%50%10%1%

What each source reports

CVE List Score used 6.7

Ansible-core: user module generate_ssh_key follows a symlinked ~/.ssh enabling local privilege escalation (incomplete fix of cve-2024-9902)

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.

Record
CVE-2026-123037
CVSS 3.1
6.7 MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-59
Updated
2026-11-06
EUVDEUVD-2026-117890 6.7

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.

Record
EUVD-2026-117890
CVSS 3.1
6.7 MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-06
GitHub AdvisoriesGHSA-cvj4-ggf5-jg54 6.7

A flaw was found in the ansible-core user module. When generate_ssh_key is enabled, User...

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.

Record
GHSA-cvj4-ggf5-jg54
CVSS 3.1
6.7 MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-59
Updated
2026-11-06
NVD 6.7

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.

Record
CVE-2026-123037
CVSS 3.1
6.7 MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-59
Updated
2026-11-06
OSVDEBIAN-CVE-2026-123037 6.7

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.

Record
DEBIAN-CVE-2026-123037
CVSS 3.1
6.7 MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-07
OSVUBUNTU-CVE-2026-123037 6.7

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.

Record
UBUNTU-CVE-2026-123037
CVSS 3.1
6.7 MediumCVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-07

Affected products

Show 3 moreShow less

Affected packages

Affected packages
PackageAffectedFixed
ansible-core
Debian:12
All versions, plus listed versions
2.14.10-12.14.11-12.14.11-22.14.13-12.14.16-0+deb12u1
Show 45 moreShow less
2.14.18-0+deb12u12.14.18-0+deb12u22.14.3-12.14.6-12.14.7-12.14.8-12.14.9-12.14.9-22.16.5-12.16.6-12.17.0-12.17.1-12.17.2-12.17.3-12.17.5-12.17.5-22.17.5-32.17.5-42.17.5-52.18.0-12.18.0-22.18.1-12.18.1-22.18.1-32.18.1-42.18.3-12.19.0-12.19.0~beta1-12.19.0~beta1-22.19.0~beta2-12.19.0~beta4-12.19.0~beta5-12.19.0~beta6-12.19.0~rc2-12.19.1-12.19.2-12.19.3-12.19.3-22.19.4-12.19~pre20250506~462affa7c4-12.19~pre20250510~5347d4d4fc-12.20.1-12.20.3-12.21.0-12.21.1~rc1-1
None known
ansible-core
Debian:13
All versions, plus listed versions
2.19.0-12.19.0~beta6-12.19.0~rc2-12.19.1-0+deb13u12.19.1-1
Show 14 moreShow less
2.19.11-0+deb13u12.19.2-12.19.3-12.19.3-22.19.4-0+deb13u12.19.4-12.20.1-12.20.3-12.21.0-12.21.1~rc1-12.21.1~rc1-22.21.2-12.22.0~beta1-12.22.0~beta2-1
None known
ansible-core
Debian:14
All versions, plus listed versions
2.19.0-12.19.0~beta6-12.19.0~rc2-12.19.1-12.19.2-1
Show 11 moreShow less
2.19.3-12.19.3-22.19.4-12.20.1-12.20.3-12.21.0-12.21.1~rc1-12.21.1~rc1-22.21.2-12.22.0~beta1-12.22.0~beta2-1
None known
ansible
Ubuntu:Pro:14.04:LTS
All versions, plus listed versions
1.1+dfsg-11.3.4+dfsg-11.4.0+dfsg-11.4.1+dfsg-11.4.3+dfsg-1
Show 5 moreShow less
1.4.4+dfsg-11.5.4+dfsg-11.5.4+dfsg-1ubuntu0.1~esm11.5.4+dfsg-1ubuntu0.1~esm21.5.4+dfsg-1ubuntu0.1~esm3
None known
ansible
Ubuntu:Pro:16.04:LTS
All versions, plus listed versions
1.9.2+dfsg-21.9.4-12.0.0.2-22.0.0.2-2ubuntu12.0.0.2-2ubuntu1.1
Show 8 moreShow less
2.0.0.2-2ubuntu1.22.0.0.2-2ubuntu1.32.0.0.2-2ubuntu1.3+esm12.0.0.2-2ubuntu1.3+esm22.0.0.2-2ubuntu1.3+esm32.0.0.2-2ubuntu1.3+esm42.0.0.2-2ubuntu1.3+esm52.0.0.2-2ubuntu1.3+esm6
None known
ansible
Ubuntu:Pro:18.04:LTS
All versions, plus listed versions
2.3.1.0+dfsg-22.5.0+dfsg-12.5.1+dfsg-12.5.1+dfsg-1ubuntu0.12.5.1+dfsg-1ubuntu0.1+esm1
Show 4 moreShow less
2.5.1+dfsg-1ubuntu0.1+esm22.5.1+dfsg-1ubuntu0.1+esm32.5.1+dfsg-1ubuntu0.1+esm42.5.1+dfsg-1ubuntu0.1+esm5
None known
ansible
Ubuntu:Pro:20.04:LTS
All versions, plus listed versions
2.8.3+dfsg-12.8.6+dfsg-12.9.2+dfsg-12.9.4+dfsg-12.9.6+dfsg-12.9.6+dfsg-1ubuntu0.1~esm12.9.6+dfsg-1ubuntu0.1~esm22.9.6+dfsg-1ubuntu0.1~esm3
None known
ansible-core
Ubuntu:22.04:LTS
All versions, plus listed versions
2.12.0-12.12.0-1ubuntu0.1
None known
ansible
Ubuntu:Pro:22.04:LTS
All versions, plus listed versions
2.10.7+merged+base+2.10.8+dfsg-12.10.7+merged+base+2.10.8+dfsg-1ubuntu0.1~esm12.10.7+merged+base+2.10.8+dfsg-1ubuntu0.1~esm4
None known
ansible
Ubuntu:24.04:LTS
All versions, plus listed versions
7.7.0+dfsg-17.7.0+dfsg-39.2.0+dfsg-0ubuntu49.2.0+dfsg-0ubuntu5
None known
Show 5 moreShow less
Affected packages
PackageAffectedFixed
ansible-core
Ubuntu:24.04:LTS
All versions, plus listed versions
2.14.9-22.14.11-12.14.11-22.14.13-12.16.3-0ubuntu12.16.3-0ubuntu2
None known
ansible
Ubuntu:26.10
All versions, plus listed versions
13.1.0+dfsg-1ubuntu113.4.0+dfsg-1
None known
ansible-core
Ubuntu:26.10
All versions, plus listed versions
2.20.1-12.21.1~rc1-12.21.1~rc1-22.21.1~rc1-2ubuntu12.22.0~beta2-1
None known
ansible
Ubuntu:26.04:LTS
All versions, plus listed versions
12.0.0~b1+dfsg-112.0.0+dfsg-112.2.0+dfsg-113.1.0+dfsg-113.1.0+dfsg-1ubuntu1
None known
ansible-core
Ubuntu:26.04:LTS
All versions, plus listed versions
2.19.0-1ubuntu12.19.4-12.20.1-1
None known

History

History
RecordedChangedSources
affected, aliases, published, referencesOSV
affected, aliases, referencesEUVD, NVD, OSV
productsCVE List, EUVD, NVD
publishedEUVD
publishedEUVD
aliases, publishedEUVD
aliases, referencesGitHub Advisories
first indexedCVE List

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-123037 is a medium vulnerability (CVSS 6.7) in Red Hat Migration Toolkit For Applications 8, published November 6, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.11%, the 1st percentile. No source names a fixed version.

References

This page doesn't list everything

Left out here: 4 versions. The JSON record has them.

MoveEnter Open