Skip to content

Commit 5b0d3ad

Browse files
authored
[release-22.0] Release of v22.0.4 (#19510)
Signed-off-by: Matt Lord <mattalord@gmail.com>
1 parent fa17b71 commit 5b0d3ad

File tree

19 files changed

+196
-86
lines changed

19 files changed

+196
-86
lines changed

.github/workflows/code_freeze.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ jobs:
1111
steps:
1212
- name: Fail if Code Freeze is enabled
1313
run: |
14-
exit 1
14+
exit 0

changelog/22.0/22.0.4/changelog.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Changelog of Vitess v22.0.4
2+
3+
### Bug fixes
4+
#### Backup and Restore
5+
* [release-22.0] fix(backup): propagate file hashes to manifest after retry (#19336) [#19343](https://github.com/vitessio/vitess/pull/19343)
6+
#### Docker
7+
* [release-22.0] docker: install mysql-shell from Oracle repo and fix shellcheck warnings (#19456) [#19463](https://github.com/vitessio/vitess/pull/19463)
8+
#### Online DDL
9+
* [release-22.0] vreplication: fix infinite retry loop when terminal error message contains binary data (#19423) [#19437](https://github.com/vitessio/vitess/pull/19437)
10+
#### Query Serving
11+
* [release-22.0] vtgate: defer implicit transaction start until after query planning (#19277) [#19341](https://github.com/vitessio/vitess/pull/19341)
12+
#### VDiff
13+
* [release-22.0] Address a few VDiff concerns (#19413) [#19447](https://github.com/vitessio/vitess/pull/19447)
14+
#### VReplication
15+
* [release-22.0] Bug fix: Add missing db_name filters to vreplication and vdiff queries #19378 [#19430](https://github.com/vitessio/vitess/pull/19430)
16+
* [release-22.0] Normalize the --on-ddl param for MoveTables (#19445) [#19451](https://github.com/vitessio/vitess/pull/19451)
17+
#### VTGate
18+
* [release-22.0] vtgate: Add bounds check in `visitUnion` for mismatched column counts (#19476) [#19482](https://github.com/vitessio/vitess/pull/19482)
19+
#### VTOrc
20+
* [release-22.0] vtorc: Add a timeout to `DemotePrimary` RPC (#19432) [#19449](https://github.com/vitessio/vitess/pull/19449)
21+
#### schema management
22+
* [release-22.0] sidecardb: make ALTER TABLE algorithm version-aware (#19358) [#19403](https://github.com/vitessio/vitess/pull/19403)
23+
### CI/Build
24+
#### Build/CI
25+
* [release-22.0] Consolidate CI test workflows (#19259) [#19272](https://github.com/vitessio/vitess/pull/19272)
26+
* [release-22.0] Run tests with gotestsum (#19076) [#19292](https://github.com/vitessio/vitess/pull/19292)
27+
* [release-22.0] Fix go upgrade tool (#19290) [#19298](https://github.com/vitessio/vitess/pull/19298)
28+
* [release-22.0] Switch gotestsum output format (#19215) [#19302](https://github.com/vitessio/vitess/pull/19302)
29+
* [release-22.0] Build boostrap image for local/region example CI (#19310) [#19316](https://github.com/vitessio/vitess/pull/19316)
30+
* [release-22.0] Don't add "Skip CI" label for Go upgrade PRs (#19307) [#19322](https://github.com/vitessio/vitess/pull/19322)
31+
* [release-22.0] Explicitly pass local image tags in example CI (#19320) [#19325](https://github.com/vitessio/vitess/pull/19325)
32+
* [release-22.0] Add lite image build CI job (#19321) [#19329](https://github.com/vitessio/vitess/pull/19329)
33+
* [release-22.0] try to fix setup mysql (#19371) [#19375](https://github.com/vitessio/vitess/pull/19375)
34+
* [release-22.0] CI: Fix workflows that install xtrabackup (#19383) [#19384](https://github.com/vitessio/vitess/pull/19384)
35+
#### Docker
36+
* [release-22.0] Build bootstrap image locally in ci (#19255) [#19265](https://github.com/vitessio/vitess/pull/19265)
37+
### Compatibility Bug
38+
#### Query Serving
39+
* [release-22.0] fix streaming binary row corruption in prepared statements (#19381) [#19414](https://github.com/vitessio/vitess/pull/19414)
40+
#### VTGate
41+
* [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)
66+
* [release-22.0] CI: Deflake Code Coverage workflow (#19388) [#19393](https://github.com/vitessio/vitess/pull/19393)
67+
* [release-22.0] CI: Deflake two flaky tests (#19364) [#19411](https://github.com/vitessio/vitess/pull/19411)
68+
* [release-22.0] CI: Use larger runners for vreplication workflows (#19433) [#19434](https://github.com/vitessio/vitess/pull/19434)
69+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Release of Vitess v22.0.4
2+
3+
## Summary
4+
5+
This is a security focused release. It contains fixes for two recently reported CVEs along with a number of other security related fixes.
6+
7+
### External Decompressor No Longer Read from Backup MANIFEST by Default
8+
9+
This is a fix for the following security advisory and associated CVE
10+
11+
- Advisory: <https://github.com/vitessio/vitess/security/advisories/GHSA-8g8j-r87h-p36x>
12+
- CVE: <https://www.cve.org/CVERecord?id=CVE-2026-27965>
13+
14+
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
23+
24+
- Advisory: <https://github.com/vitessio/vitess/security/advisories/GHSA-r492-hjgh-c9gw>
25+
- CVE: <https://www.cve.org/CVERecord?id=CVE-2026-27969>
26+
27+
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
37+

changelog/22.0/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
## v22.0
2+
* **[22.0.4](22.0.4)**
3+
* [Changelog](22.0.4/changelog.md)
4+
* [Release Notes](22.0.4/release_notes.md)
5+
26
* **[22.0.3](22.0.3)**
37
* [Changelog](22.0.3/changelog.md)
48
* [Release Notes](22.0.3/release_notes.md)

examples/compose/docker-compose.beginners.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ services:
5858
- "3306"
5959

6060
vtctld:
61-
image: vitess/lite:v22.0.3
61+
image: vitess/lite:v22.0.4
6262
ports:
6363
- "15000:$WEB_PORT"
6464
- "$GRPC_PORT"
@@ -83,7 +83,7 @@ services:
8383
condition: service_healthy
8484
8585
vtgate:
86-
image: vitess/lite:v22.0.3
86+
image: vitess/lite:v22.0.4
8787
ports:
8888
- "15099:$WEB_PORT"
8989
- "$GRPC_PORT"
@@ -113,7 +113,7 @@ services:
113113
condition: service_healthy
114114

115115
schemaload:
116-
image: vitess/lite:v22.0.3
116+
image: vitess/lite:v22.0.4
117117
command:
118118
- sh
119119
- -c
@@ -146,12 +146,12 @@ services:
146146
environment:
147147
- KEYSPACES=$KEYSPACE
148148
- GRPC_PORT=15999
149-
image: vitess/lite:v22.0.3
149+
image: vitess/lite:v22.0.4
150150
volumes:
151151
- .:/script
152152

153153
vttablet100:
154-
image: vitess/lite:v22.0.3
154+
image: vitess/lite:v22.0.4
155155
ports:
156156
- "15100:$WEB_PORT"
157157
- "$GRPC_PORT"
@@ -183,7 +183,7 @@ services:
183183
retries: 15
184184

185185
vttablet101:
186-
image: vitess/lite:v22.0.3
186+
image: vitess/lite:v22.0.4
187187
ports:
188188
- "15101:$WEB_PORT"
189189
- "$GRPC_PORT"
@@ -215,7 +215,7 @@ services:
215215
retries: 15
216216

217217
vttablet102:
218-
image: vitess/lite:v22.0.3
218+
image: vitess/lite:v22.0.4
219219
ports:
220220
- "15102:$WEB_PORT"
221221
- "$GRPC_PORT"
@@ -247,7 +247,7 @@ services:
247247
retries: 15
248248

249249
vttablet103:
250-
image: vitess/lite:v22.0.3
250+
image: vitess/lite:v22.0.4
251251
ports:
252252
- "15103:$WEB_PORT"
253253
- "$GRPC_PORT"
@@ -279,7 +279,7 @@ services:
279279
retries: 15
280280

281281
vtorc:
282-
image: vitess/lite:v22.0.3
282+
image: vitess/lite:v22.0.4
283283
command: ["sh", "-c", "/script/vtorc-up.sh"]
284284
depends_on:
285285
- vtctld
@@ -309,7 +309,7 @@ services:
309309
retries: 15
310310

311311
vreplication:
312-
image: vitess/lite:v22.0.3
312+
image: vitess/lite:v22.0.4
313313
volumes:
314314
- ".:/script"
315315
environment:

examples/compose/docker-compose.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ services:
7575
- SCHEMA_FILES=lookup_keyspace_schema_file.sql
7676
- POST_LOAD_FILE=
7777
- EXTERNAL_DB=0
78-
image: vitess/lite:v22.0.3
78+
image: vitess/lite:v22.0.4
7979
volumes:
8080
- .:/script
8181
schemaload_test_keyspace:
@@ -101,7 +101,7 @@ services:
101101
- SCHEMA_FILES=test_keyspace_schema_file.sql
102102
- POST_LOAD_FILE=
103103
- EXTERNAL_DB=0
104-
image: vitess/lite:v22.0.3
104+
image: vitess/lite:v22.0.4
105105
volumes:
106106
- .:/script
107107
set_keyspace_durability_policy:
@@ -115,7 +115,7 @@ services:
115115
environment:
116116
- KEYSPACES=test_keyspace lookup_keyspace
117117
- GRPC_PORT=15999
118-
image: vitess/lite:v22.0.3
118+
image: vitess/lite:v22.0.4
119119
volumes:
120120
- .:/script
121121
vreplication:
@@ -129,7 +129,7 @@ services:
129129
- TOPOLOGY_FLAGS=--topo_implementation consul --topo_global_server_address consul1:8500
130130
--topo_global_root vitess/global
131131
- EXTERNAL_DB=0
132-
image: vitess/lite:v22.0.3
132+
image: vitess/lite:v22.0.4
133133
volumes:
134134
- .:/script
135135
vtctld:
@@ -143,7 +143,7 @@ services:
143143
depends_on:
144144
external_db_host:
145145
condition: service_healthy
146-
image: vitess/lite:v22.0.3
146+
image: vitess/lite:v22.0.4
147147
ports:
148148
- 15000:8080
149149
- "15999"
@@ -160,7 +160,7 @@ services:
160160
--normalize_queries=true '
161161
depends_on:
162162
- vtctld
163-
image: vitess/lite:v22.0.3
163+
image: vitess/lite:v22.0.4
164164
ports:
165165
- 15099:8080
166166
- "15999"
@@ -182,7 +182,7 @@ services:
182182
- EXTERNAL_DB=0
183183
- DB_USER=
184184
- DB_PASS=
185-
image: vitess/lite:v22.0.3
185+
image: vitess/lite:v22.0.4
186186
ports:
187187
- 13000:8080
188188
volumes:
@@ -217,7 +217,7 @@ services:
217217
- CMD-SHELL
218218
- curl -s --fail --show-error localhost:8080/debug/health
219219
timeout: 10s
220-
image: vitess/lite:v22.0.3
220+
image: vitess/lite:v22.0.4
221221
ports:
222222
- 15101:8080
223223
- "15999"
@@ -254,7 +254,7 @@ services:
254254
- CMD-SHELL
255255
- curl -s --fail --show-error localhost:8080/debug/health
256256
timeout: 10s
257-
image: vitess/lite:v22.0.3
257+
image: vitess/lite:v22.0.4
258258
ports:
259259
- 15102:8080
260260
- "15999"
@@ -291,7 +291,7 @@ services:
291291
- CMD-SHELL
292292
- curl -s --fail --show-error localhost:8080/debug/health
293293
timeout: 10s
294-
image: vitess/lite:v22.0.3
294+
image: vitess/lite:v22.0.4
295295
ports:
296296
- 15201:8080
297297
- "15999"
@@ -328,7 +328,7 @@ services:
328328
- CMD-SHELL
329329
- curl -s --fail --show-error localhost:8080/debug/health
330330
timeout: 10s
331-
image: vitess/lite:v22.0.3
331+
image: vitess/lite:v22.0.4
332332
ports:
333333
- 15202:8080
334334
- "15999"
@@ -365,7 +365,7 @@ services:
365365
- CMD-SHELL
366366
- curl -s --fail --show-error localhost:8080/debug/health
367367
timeout: 10s
368-
image: vitess/lite:v22.0.3
368+
image: vitess/lite:v22.0.4
369369
ports:
370370
- 15301:8080
371371
- "15999"
@@ -402,7 +402,7 @@ services:
402402
- CMD-SHELL
403403
- curl -s --fail --show-error localhost:8080/debug/health
404404
timeout: 10s
405-
image: vitess/lite:v22.0.3
405+
image: vitess/lite:v22.0.4
406406
ports:
407407
- 15302:8080
408408
- "15999"

0 commit comments

Comments
 (0)