diff --git a/changelog/17.0/17.0.0/release_notes.md b/changelog/17.0/17.0.0/release_notes.md
index eff847c3c19..9900ded0e3c 100644
--- a/changelog/17.0/17.0.0/release_notes.md
+++ b/changelog/17.0/17.0.0/release_notes.md
@@ -7,7 +7,6 @@
- [Schema-initialization stuck on semi-sync ACKs while upgrading to v17.0.0](#schema-init-upgrade)
- **[Major Changes](#major-changes)**
- **[Breaking Changes](#breaking-changes)**
- - [VTTablet: Initializing all replicas with super_read_only](#vttablet-initialization)
- [Default Local Cell Preference for TabletPicker](#tablet-picker-cell-preference)
- [Dedicated stats for VTGate Prepare operations](#dedicated-vtgate-prepare-stats)
- [VTAdmin web migrated from create-react-app to vite](#migrated-vtadmin)
diff --git a/changelog/17.0/17.0.0/summary.md b/changelog/17.0/17.0.0/summary.md
index 0c258bb8868..92ac2897463 100644
--- a/changelog/17.0/17.0.0/summary.md
+++ b/changelog/17.0/17.0.0/summary.md
@@ -6,7 +6,6 @@
- [Schema-initialization stuck on semi-sync ACKs while upgrading to v17.0.0](#schema-init-upgrade)
- **[Major Changes](#major-changes)**
- **[Breaking Changes](#breaking-changes)**
- - [VTTablet: Initializing all replicas with super_read_only](#vttablet-initialization)
- [Default Local Cell Preference for TabletPicker](#tablet-picker-cell-preference)
- [Dedicated stats for VTGate Prepare operations](#dedicated-vtgate-prepare-stats)
- [VTAdmin web migrated from create-react-app to vite](#migrated-vtadmin)
diff --git a/changelog/17.0/17.0.6/changelog.md b/changelog/17.0/17.0.6/changelog.md
new file mode 100644
index 00000000000..74d8a28a65f
--- /dev/null
+++ b/changelog/17.0/17.0.6/changelog.md
@@ -0,0 +1,49 @@
+# Changelog of Vitess v17.0.6
+
+### Bug fixes
+#### Evalengine
+ * [release-17.0] evalengine: Fix week overflow (#14859) [#14860](https://github.com/vitessio/vitess/pull/14860)
+ * [release-17.0] evalengine: Return evalTemporal types for current date / time (#15079) [#15083](https://github.com/vitessio/vitess/pull/15083)
+#### General
+ * [release-17.0] Protect `ExecuteFetchAsDBA` against multi-statements, excluding a sequence of `CREATE TABLE|VIEW`. (#14954) [#14983](https://github.com/vitessio/vitess/pull/14983)
+#### Online DDL
+ * [release-17.0] VReplication/OnlineDDL: reordering enum values (#15103) [#15350](https://github.com/vitessio/vitess/pull/15350)
+#### Query Serving
+ * [release-17]: Vindexes: Pass context in consistent lookup handleDup (#14653) [#14912](https://github.com/vitessio/vitess/pull/14912)
+ * [release-17.0] evalengine bugfix: handle nil evals correctly when coercing values (#14906) [#14913](https://github.com/vitessio/vitess/pull/14913)
+ * [release-17.0] Fix Go routine leaks in streaming calls (#15293) [#15299](https://github.com/vitessio/vitess/pull/15299)
+ * [release-17.0] SHOW VITESS_REPLICATION_STATUS: Only use replication tracker when it's enabled (#15348) [#15360](https://github.com/vitessio/vitess/pull/15360)
+#### Throttler
+ * [release-17.0] examples: rm heartbeat flags (#14980) [#14998](https://github.com/vitessio/vitess/pull/14998)
+#### vtexplain
+ * [release-17.0] vtexplain: Fix setting up the column information (#15275) [#15280](https://github.com/vitessio/vitess/pull/15280)
+ * [release-17.0] vtexplain: Ensure memory topo is set up for throttler (#15279) [#15283](https://github.com/vitessio/vitess/pull/15283)
+#### vttestserver
+ * [release-17.0] use proper mysql version in the `vttestserver` images (#15235) [#15237](https://github.com/vitessio/vitess/pull/15237)
+### CI/Build
+#### Build/CI
+ * [release-17.0] Fix relevant files listing for `endtoend` CI (#15104) [#15109](https://github.com/vitessio/vitess/pull/15109)
+ * [release-17.0] Remove concurrency group for check labels workflow (#15197) [#15207](https://github.com/vitessio/vitess/pull/15207)
+ * [release-17.0] Update all actions setup to latest versions (#15443) [#15444](https://github.com/vitessio/vitess/pull/15444)
+### Dependabot
+#### General
+ * [release-17.0] Bumps deps and use proper Go version in upgrade tests [#15408](https://github.com/vitessio/vitess/pull/15408)
+#### Java
+ * [release-17.0] build(deps): bump io.netty:netty-handler from 4.1.93.Final to 4.1.94.Final in /java (#14863) [#14880](https://github.com/vitessio/vitess/pull/14880)
+### Documentation
+#### Documentation
+ * [release-17.0] 17.0.6 release notes: ExecuteFetchAsDBA breaking change [#15011](https://github.com/vitessio/vitess/pull/15011)
+### Enhancement
+#### Build/CI
+ * [release-17.0] Update paths filter action (#15254) [#15262](https://github.com/vitessio/vitess/pull/15262)
+### Regression
+#### Throttler
+ * [release-17.0] Enable 'heartbeat_on_demand_duration' in local/examples (#15204) [#15290](https://github.com/vitessio/vitess/pull/15290)
+### Release
+### Testing
+#### Build/CI
+ * [release-17.0] Bump upgrade tests to `go1.21.7` [#15160](https://github.com/vitessio/vitess/pull/15160)
+ * [release-17.0] CI: Address data races on memorytopo Conn.closed (#15365) [#15369](https://github.com/vitessio/vitess/pull/15369)
+#### Query Serving
+ * [release-17.0] Refactor Upgrade downgrade tests (#14782) [#14831](https://github.com/vitessio/vitess/pull/14831)
+
diff --git a/changelog/17.0/17.0.6/release_notes.md b/changelog/17.0/17.0.6/release_notes.md
new file mode 100644
index 00000000000..fd8b9de4a5d
--- /dev/null
+++ b/changelog/17.0/17.0.6/release_notes.md
@@ -0,0 +1,34 @@
+# Release of Vitess v17.0.6
+## Summary
+
+### Table of Contents
+
+- **[Major Changes](#major-changes)**
+ - **[Breaking Changes](#breaking-changes)**
+ - [ExecuteFetchAsDBA rejects multi-statement SQL](#execute-fetch-as-dba-reject-multi)
+
+## Major Changes
+
+### Breaking Changes
+
+#### ExecuteFetchAsDBA rejects multi-statement SQL
+
+`vtctldclient ExecuteFetchAsDBA` (and similarly the `vtctl` and `vtctlclient` commands) now reject multi-statement SQL with error.
+
+For example, `vtctldclient ExecuteFetchAsDBA my-tablet "stop replica; change replication source to auto_position=1; start replica` will return an error, without attempting to execute any of these queries.
+
+Previously, `ExecuteFetchAsDBA` silently accepted multi statement SQL. It would (attempt to) execute all of them, but:
+
+- It would only indicate error for the first statement. Errors on 2nd, 3rd, ... statements were silently ignored.
+- It would not consume the result sets of the 2nd, 3rd, ... statements. It would then return the used connection to the pool in a dirty state. Any further query that happens to take that connection out of the pool could get unexpected results.
+- As another side effect, multi-statement schema changes would cause schema to be reloaded with only the first change, leaving the cached schema inconsistent with the underlying database.
+
+`ExecuteFetchAsDBA` does allow a specific use case of multi-statement SQL, which is where all statements are in the form of `CREATE TABLE` or `CREATE VIEW`. This is to support a common pattern of schema initialization.
+
+------------
+The entire changelog for this release can be found [here](https://github.com/vitessio/vitess/blob/main/changelog/17.0/17.0.6/changelog.md).
+
+The release includes 24 merged Pull Requests.
+
+Thanks to all our contributors: @app/vitess-bot, @frouioui, @harshit-gangal, @shlomi-noach, @systay
+
diff --git a/changelog/17.0/17.0.6/summary.md b/changelog/17.0/17.0.6/summary.md
new file mode 100644
index 00000000000..947aabd3f68
--- /dev/null
+++ b/changelog/17.0/17.0.6/summary.md
@@ -0,0 +1,25 @@
+## Summary
+
+### Table of Contents
+
+- **[Major Changes](#major-changes)**
+ - **[Breaking Changes](#breaking-changes)**
+ - [ExecuteFetchAsDBA rejects multi-statement SQL](#execute-fetch-as-dba-reject-multi)
+
+## Major Changes
+
+### Breaking Changes
+
+#### ExecuteFetchAsDBA rejects multi-statement SQL
+
+`vtctldclient ExecuteFetchAsDBA` (and similarly the `vtctl` and `vtctlclient` commands) now reject multi-statement SQL with error.
+
+For example, `vtctldclient ExecuteFetchAsDBA my-tablet "stop replica; change replication source to auto_position=1; start replica` will return an error, without attempting to execute any of these queries.
+
+Previously, `ExecuteFetchAsDBA` silently accepted multi statement SQL. It would (attempt to) execute all of them, but:
+
+- It would only indicate error for the first statement. Errors on 2nd, 3rd, ... statements were silently ignored.
+- It would not consume the result sets of the 2nd, 3rd, ... statements. It would then return the used connection to the pool in a dirty state. Any further query that happens to take that connection out of the pool could get unexpected results.
+- As another side effect, multi-statement schema changes would cause schema to be reloaded with only the first change, leaving the cached schema inconsistent with the underlying database.
+
+`ExecuteFetchAsDBA` does allow a specific use case of multi-statement SQL, which is where all statements are in the form of `CREATE TABLE` or `CREATE VIEW`. This is to support a common pattern of schema initialization.
diff --git a/changelog/17.0/README.md b/changelog/17.0/README.md
index 767e3bb0939..392ca0fbbe2 100644
--- a/changelog/17.0/README.md
+++ b/changelog/17.0/README.md
@@ -1,4 +1,8 @@
## v17.0
+* **[17.0.6](17.0.6)**
+ * [Changelog](17.0.6/changelog.md)
+ * [Release Notes](17.0.6/release_notes.md)
+
* **[17.0.5](17.0.5)**
* [Changelog](17.0.5/changelog.md)
* [Release Notes](17.0.5/release_notes.md)