diff --git a/Gemfile b/Gemfile
index 3080445bca5d3b88bcaa335ada184f619a68aae0..107d4d287300fbd181c04a3aebe94ea0c40dc75c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -173,7 +173,7 @@ gem 'diffy', '~> 3.3'
 gem 'diff_match_patch', '~> 0.1.0'
 
 # Application server
-gem 'rack', '~> 2.1.4'
+gem 'rack', '~> 2.2.3'
 # https://github.com/sharpstone/rack-timeout/blob/master/README.md#rails-apps-manually
 gem 'rack-timeout', '~> 0.5.1', require: 'rack/timeout/base'
 
diff --git a/Gemfile.lock b/Gemfile.lock
index f16934bf05c2c4af8c8b89fddeb95d69da394213..6ccbba818b8961f31d6a6280c8047e5627cc478f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -867,7 +867,7 @@ GEM
     public_suffix (4.0.6)
     pyu-ruby-sasl (0.0.3.3)
     raabro (1.1.6)
-    rack (2.1.4)
+    rack (2.2.3)
     rack-accept (0.4.5)
       rack (>= 0.4)
     rack-attack (6.3.0)
@@ -1448,7 +1448,7 @@ DEPENDENCIES
   prometheus-client-mmap (~> 0.12.0)
   pry-byebug (~> 3.9.0)
   pry-rails (~> 0.3.9)
-  rack (~> 2.1.4)
+  rack (~> 2.2.3)
   rack-attack (~> 6.3.0)
   rack-cors (~> 1.0.6)
   rack-oauth2 (~> 1.9.3)
diff --git a/changelogs/unreleased/sh-update-rack-2-2-3.yml b/changelogs/unreleased/sh-update-rack-2-2-3.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e4d44b1c72fa021d69577c30c788032348bfa4b9
--- /dev/null
+++ b/changelogs/unreleased/sh-update-rack-2-2-3.yml
@@ -0,0 +1,5 @@
+---
+title: Update Rack to v2.2.3
+merge_request: 45183
+author:
+type: changed