# CVE-2026-27969: Vitess users with backup storage access can write to arbitrary file paths on restore

> Attackers with backup storage access can write arbitrary files during restore, leading to unauthorized access and command execution in the production environment.

- **Severity:** Critical 9.3 (`CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:H/VI:H/VA:L/SC:L/SI:H/SA:H`)
- **Exploited in the wild:** Not known
- **Login needed:** An administrator
- **Attackable:** Over the internet
- **Victim action needed:** A user has to click or open something
- **Fix available:** Yes
- **Published:** 26 Feb 2026
- **Updated:** 26 Feb 2026
- **Also known as:** AZL-78359, AZL-78516, GHSA-r492-hjgh-c9gw, GO-2026-4570

## What is CVE-2026-27969?

CVE-2026-27969 is a critical path traversal vulnerability in vitessio vitess, published on 26 Feb 2026. An attacker needs administrator access to exploit it, and only if a user opens a file or follows a link.

### Official description

Vitess is a database clustering system for horizontal scaling of MySQL. Prior to versions 23.0.3 and 22.0.4, anyone with read/write access to the backup storage location (e.g. an S3 bucket) can manipulate backup manifest files so that files in the manifest — which may be files that they have also added to the manifest and backup contents — are written to any accessible location on restore. This is a common path traversal security issue. This can be used to provide that attacker with unintended/unauthorized access to the production deployment environment — allowing them to access information available in that environment as well as run any additional arbitrary commands there. Versions 23.0.3 and 22.0.4 contain a patch. No known workarounds are available.

Weakness: CWE-22 (Improper Limitation of a Pathname to a Restricted Directory)

## Which versions are affected by CVE-2026-27969?

5 open source packages ship an affected version, including vitess.io/vitess. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `vitess.io/vitess` | Go | All versions | 0.22.4, 0.23.3 |
| `vitess.io/vitess` | Go | All versions | 0.22.4 |
| `vitess.io/vitess` | Go | All versions | 0.22.4 |
| `vitess.io/vitess` | Go | From 0.23.0-rc1 | 0.23.3 |
| `vitess.io/vitess` | Go | From 0.23.0-rc1 | 0.23.3 |

Products: Linuxfoundation Vitess.

## How do I fix CVE-2026-27969?

Upgrade vitess.io/vitess to a fixed version for your release line: 0.22.4 or 0.23.3.

## Is CVE-2026-27969 being exploited?

There is no known exploitation of CVE-2026-27969 in the wild and no public exploit code.

## Other vulnerabilities in vitessio vitess

- [CVE-2026-104252](https://insights.sbomify.com/CVE-2026-104252/): Vitess vttablet /twopcz reflected XSS (critical 9.8)
- [CVE-2026-27965](https://insights.sbomify.com/CVE-2026-27965/): Vitess users with backup storage access can gain unauthorized access to production deployment environments (high 8.4)
- [CVE-2023-29195](https://insights.sbomify.com/CVE-2023-29195/): Vitess VTAdmin users that can create shards can deny access to other functions (medium 4.1)
- [CVE-2023-29194](https://insights.sbomify.com/CVE-2023-29194/): vitess allows users to create keyspaces that can deny access to already existing keyspaces (medium 4.1)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-27969 and fix it if it is affected.

What it is: CVE-2026-27969 is a critical path traversal vulnerability in vitessio vitess, published on 26 Feb 2026. An attacker needs administrator access to exploit it, and only if a user opens a file or follows a link.
Exploitation: There is no known exploitation of CVE-2026-27969 in the wild and no public exploit code.

Affected packages and fixed versions:
- vitess.io/vitess (Go): affected all versions; fixed in 0.22.4, 0.23.3
- vitess.io/vitess (Go): affected all versions; fixed in 0.22.4
- vitess.io/vitess (Go): affected all versions; fixed in 0.22.4
- vitess.io/vitess (Go): affected from 0.23.0-rc1; fixed in 0.23.3
- vitess.io/vitess (Go): affected from 0.23.0-rc1; fixed in 0.23.3

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-27969/ (Markdown: https://insights.sbomify.com/CVE-2026-27969/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-27969
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-27969
- OSV: https://osv.dev/vulnerability/CVE-2026-27969

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-27969/
Summaries are generated and may contain mistakes; the official description above is the record.
