
CVE catalog
CVE-2026-89091
A flaw was found in ansible-core. When installing a collection with `ansible-galaxy collection install`, the archive extractor validates member paths using lexical path normalisation (os.path.abspath)
- Severity
- High · CVSS 8.8
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Published
- Updated
- Source
- [NVD] · [CVE record]
- EPSS
- 0.48% · Oct 27, 2026
A flaw was found in ansible-core. When installing a collection with `ansible-galaxy collection install`, the archive extractor validates member paths using lexical path normalisation (os.path.abspath) instead of resolving symbolic links (os.path.realpath), and it performs no containment check on symlink-typed directory members before creating them. A crafted collection tarball can chain symlink directory entries so that a subsequent file member is written outside the intended destination directory. This allows an attacker who can get a victim to install a malicious collection to overwrite arbitrary files with the privileges of the user running ansible-galaxy, leading to code execution on the control node. This is a bypass of the fix for CVE-2020-10691.
Vulnerable and fixed packages
Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.
| Distribution | Package | Release | Version | Status |
|---|---|---|---|---|
| Debian | ansible-core | sid | 2.22.0~beta2-1 | vulnerable |
| Debian | ansible-core | forky | 2.22.0~beta2-1 | vulnerable |
| Debian | ansible-core | trixie | 2.19.11-0+deb13u1 | vulnerable |
| Debian | ansible-core | bookworm | 2.14.18-0+deb12u2 | vulnerable |
| Opensuse | ansible-core-2.20 | tumbleweed | 2.20.10-2.1 | fixed |
| Opensuse | ansible-core-2.19 | tumbleweed | 2.19.14-2.1 | fixed |
| Opensuse | ansible-core | tumbleweed | 2.21.5-2.1 | fixed |
| Opensuse | ansible-core-2.18 | tumbleweed | 2.18.19-3.1 | fixed |
Fixed-version evidence
| Distribution | Package | Type | Release | Fixed version | Urgency | Origin | Bugs |
|---|---|---|---|---|---|---|---|
| Debian | ansible-core | source | sid | (unfixed) | not yet assigned | Not reported | Not reported |
| Debian | ansible-core | source | forky | (unfixed) | not yet assigned | Not reported | Not reported |
| Debian | ansible-core | source | trixie | (unfixed) | not yet assigned | Not reported | Not reported |
| Debian | ansible-core | source | bookworm | (unfixed) | not yet assigned | Not reported | Not reported |
| Opensuse | ansible-core-2.20 | rpm | tumbleweed | 2.20.10-2.1 | Not reported | OPENSUSE-SU-2026:12175-1 | Not reported |
| Opensuse | ansible-core-2.19 | rpm | tumbleweed | 2.19.14-2.1 | Not reported | OPENSUSE-SU-2026:12174-1 | Not reported |
| Opensuse | ansible-core | rpm | tumbleweed | 2.21.5-2.1 | Not reported | OPENSUSE-SU-2026:12172-1 | Not reported |
| Opensuse | ansible-core-2.18 | rpm | tumbleweed | 2.18.19-3.1 | Not reported | OPENSUSE-SU-2026:12173-1 | Not reported |
OpenFactory catalog packages
[Debian 12 (Bookworm)]
- [ansible-core]Affected
Details (2)
2.14.18-0+deb12u2· all · bookwormAffected
nvd · ansible-core · debian · bookworm; nvd · ansible-core · debian · 12
2.14.18-0+deb12u2· all · bookwormAffected
nvd · ansible-core · debian · bookworm; nvd · ansible-core · debian · 12
[Debian 13 (Trixie)]
- [ansible-core]Affected
Details (2)
2.19.4-0+deb13u1· all · trixieAffected
nvd · ansible-core · debian · 13
2.19.4-0+deb13u1· all · trixieAffected
nvd · ansible-core · debian · 13
[openSUSE Tumbleweed]
- [ansible-core]Affected
Source package: [ansible-core]
Details (1)
2.21.3-1.1· noarch · tumbleweedAffected · Fixed:
2.21.5-2.1nvd · ansible-core · opensuse · tumbleweed
- [ansible-core-2.18]Affected
Source package: [ansible-core-2.18]
Details (1)
2.18.19-1.1· noarch · tumbleweedAffected · Fixed:
2.18.19-3.1nvd · ansible-core-2.18 · opensuse · tumbleweed
- [ansible-core-2.19]Affected
Source package: [ansible-core-2.19]
Details (1)
2.19.12-1.1· noarch · tumbleweedAffected · Fixed:
2.19.14-2.1nvd · ansible-core-2.19 · opensuse · tumbleweed
- [ansible-core-2.20]Affected
Source package: [ansible-core-2.20]
Details (1)
2.20.8-1.1· noarch · tumbleweedAffected · Fixed:
2.20.10-2.1nvd · ansible-core-2.20 · opensuse · tumbleweed
- [ansible-test]Unknown
Source package: [ansible-core]
Details (1)
2.21.3-1.1· noarch · tumbleweedUnknown · Fixed:
2.21.5-2.1Version impact unknown
nvd · ansible-core · opensuse · tumbleweed
- [ansible-test-2.18]Unknown
Source package: [ansible-core-2.18]
Details (1)
2.18.19-1.1· noarch · tumbleweedUnknown · Fixed:
2.18.19-3.1Version impact unknown
nvd · ansible-core-2.18 · opensuse · tumbleweed
- [ansible-test-2.19]Unknown
Source package: [ansible-core-2.19]
Details (1)
2.19.12-1.1· noarch · tumbleweedUnknown · Fixed:
2.19.14-2.1Version impact unknown
nvd · ansible-core-2.19 · opensuse · tumbleweed
- [ansible-test-2.20]Unknown
Source package: [ansible-core-2.20]
Details (1)
2.20.8-1.1· noarch · tumbleweedUnknown · Fixed:
2.20.10-2.1Version impact unknown
nvd · ansible-core-2.20 · opensuse · tumbleweed
Observed:
References
- [https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_12172-1.json]
- [https://nvd.nist.gov/vuln/detail/CVE-2026-89091]
- [https://osv.dev/vulnerability/DEBIAN-CVE-2026-89091]
- [https://osv.dev/vulnerability/openSUSE-SU-2026:12172-1]
- [https://osv.dev/vulnerability/openSUSE-SU-2026:12173-1]
- [https://osv.dev/vulnerability/openSUSE-SU-2026:12174-1]
- [https://osv.dev/vulnerability/openSUSE-SU-2026:12175-1]
- [https://security-tracker.debian.org/tracker/CVE-2026-89091]
- [https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89091.json]
[Debian Security Tracker] · [FIRST EPSS] · [National Vulnerability Database (NVD)] · [OSV Package Vulnerability Database] · [Red Hat security advisories and VEX] · [SUSE security advisories and VEX]