Vitess users with backup storage access can gain unauthorized access to production deployment environments
HighCVE-2026-27965 · Published Feb 26, 2026 · updated Mar 23, 2026
### Impact Any user with read/write access to the backup storage location (e.g. an S3 bucket) can manipulate backup manifest files so that arbitrary code is later executed when that backup is restored. 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. ### Patches Fixes are expected to be released with versions v23.0.3 and v22.0.4 See fix commit at https://github.com/vitessio/vitess/commit/4c0173293907af9cb942a6683c465c3f1e9fdb5c ### Workarounds If maintainers *intended* to use an external decompressor then they can always specify that decompressor command in the `--external-decompressor` flag value for `vttablet` and `vtbackup`. That then overrides any value specified in the manifest file. If maintainers did *not intend* to use an external decompressor, nor an internal one, then they can specify a value such as `cat` or `tee` in the `--external-decompressor` flag value for `vttablet` and `vtbackup` to ensure that a harmless command is always used. ### References Users can read more ab...
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| vitess.io/vitess Go | <= 0.23.2 | No fix yet |
Details and references
### Impact Any user with read/write access to the backup storage location (e.g. an S3 bucket) can manipulate backup manifest files so that arbitrary code is later executed when that backup is restored. 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. ### Patches Fixes are expected to be released with versions v23.0.3 and v22.0.4 See fix commit at https://github.com/vitessio/vitess/commit/4c0173293907af9cb942a6683c465c3f1e9fdb5c ### Workarounds If maintainers *intended* to use an external decompressor then they can always specify that decompressor command in the `--external-decompressor` flag value for `vttablet` and `vtbackup`. That then overrides any value specified in the manifest file. If maintainers did *not intend* to use an external decompressor, nor an internal one, then they can specify a value such as `cat` or `tee` in the `--external-decompressor` flag value for `vttablet` and `vtbackup` to ensure that a harmless command is always used. ### References Users can read more about the issue here: https://github.com/vitessio/vitess/issues/19459
- CVSS 4.0
- CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:H/VI:H/VA:L/SC:L/SI:L/SA:L
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-78
- Also known as
- CVE-2026-27965, GO-2026-4567
More vitess advisories
All vitess| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Aug 18 | Vitess: Missing authorization on vttablet /debug/vrlog exposes live VReplication SQL data | Medium5.3 | No fix yet |
| Feb 27 | Vitess users with backup storage access can write to arbitrary file paths on restore | Critical | 0.22.4+1 more |
| Dec 32024 | Vitess allows HTML injection in /debug/querylogz & /debug/env | Medium4.9 | 0.19.8+2 more |
| May 82024 | Vitess vulnerable to infinite memory consumption and vtgate crash | Medium4.9 | 0.17.7+5 more |
| May 112023 | VTAdmin users that can create shards can deny access to other functions | Medium4.1 | 0.16.2 |
| Apr 112023 | vitess allows users to create keyspaces that can deny access to already existing keyspaces | Medium4.1 | 0.16.1 |