You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*[release-22.0] vtgate: fix handling of session variables on targeted connections (#19318) [#19334](https://github.com/vitessio/vitess/pull/19334)
42
+
### Dependencies
43
+
#### Docker
44
+
*[release-22.0] Upgrade the Golang version to `go1.24.13`[#19305](https://github.com/vitessio/vitess/pull/19305)
45
+
### Enhancement
46
+
#### VTGate
47
+
*[release-22.0] Performance: use `IsSingleShard()` check in `pushDerived` instead of just `engine.EqualUnique` opcode (#18974) [#19345](https://github.com/vitessio/vitess/pull/19345)
48
+
### Release
49
+
#### Build/CI
50
+
*[release-22.0] Code Freeze for `v22.0.4`[#19509](https://github.com/vitessio/vitess/pull/19509)
51
+
#### Documentation
52
+
* Add release summary for v22.0.4 [#19508](https://github.com/vitessio/vitess/pull/19508)
53
+
#### General
54
+
*[release-22.0] Bump to `v22.0.4-SNAPSHOT` after the `v22.0.3` release [#19284](https://github.com/vitessio/vitess/pull/19284)
55
+
### Security
56
+
#### Backup and Restore
57
+
*[release-22.0] Restore: make loading compressor commands from `MANIFEST` opt-in (#19460) [#19473](https://github.com/vitessio/vitess/pull/19473)
58
+
*[release-22.0]`backupengine`: disallow path traversals via backup `MANIFEST` on restore (#19470) [#19477](https://github.com/vitessio/vitess/pull/19477)
59
+
*[release-22.0]`mysqlshellbackupengine`: use `fileutil.SafePathJoin(...)` to build path (#19484) [#19490](https://github.com/vitessio/vitess/pull/19490)
60
+
#### VTTablet
61
+
*[release-22.0]`filebackupstorage`: use `fileutil.SafePathJoin` for all path building (#19479) [#19480](https://github.com/vitessio/vitess/pull/19480)
62
+
*[release-22.0]`vttablet`: harden `ExecuteHook` RPC and backup engine flag inputs (#19486) [#19500](https://github.com/vitessio/vitess/pull/19500)
63
+
### Testing
64
+
#### Build/CI
65
+
*[release-22.0] Generate race unit tests (#19078) [#19295](https://github.com/vitessio/vitess/pull/19295)
The external decompressor command stored in a backup's `MANIFEST` file is no longer used at restore time by default. Previously, when no `--external-decompressor` flag was provided, VTTablet would fall back to the command specified in the `MANIFEST`. This posed a security risk: an attacker with write access to backup storage could modify the `MANIFEST` to execute arbitrary commands on the tablet.
15
+
16
+
*Please note that this is a breaking change.* Starting in v22.0.4, the `MANIFEST`-based decompressor is ignored unless you explicitly opt in with the new `--external-decompressor-use-manifest` flag. If you rely on this behavior, add the flag to your VTTablet configuration, but be aware of the security implications.
17
+
18
+
See [#19460](https://github.com/vitessio/vitess/pull/19460) for details.
19
+
20
+
### Prevent Path Traversals Via Backup MANIFEST Files On restore
21
+
22
+
This is a fix for the following security advisory and associated CVE
We now prevent a common [Path Traversal attack](https://owasp.org/www-community/attacks/Path_Traversal) that someone with write access to backup storage could use to escape the target restore directory and write files to arbitrary filesystem paths via modifications to the `MANIFEST`.
28
+
29
+
See [#19470](https://github.com/vitessio/vitess/pull/19470) for details.
30
+
31
+
------------
32
+
The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/22.0/22.0.4/changelog.md).
33
+
34
+
The release includes 37 merged Pull Requests.
35
+
36
+
Thanks to all our contributors: @app/vitess-bot, @mattlord, @vitess-bot
0 commit comments