diff --git a/Gemfile b/Gemfile
index 920f778c053f1ad4129766047c6bc460ecdfafa5..eaea54cf8da08b8de6dab1af690717915018dc33 100644
--- a/Gemfile
+++ b/Gemfile
@@ -448,9 +448,9 @@ end
 # Gitaly GRPC protocol definitions
 gem 'gitaly', '~> 1.65.0'
 
-gem 'grpc', '~> 1.19.0'
+gem 'grpc', '~> 1.24.0'
 
-gem 'google-protobuf', '~> 3.7.1'
+gem 'google-protobuf', '~> 3.8.0'
 
 gem 'toml-rb', '~> 1.0.0', require: false
 
diff --git a/Gemfile.lock b/Gemfile.lock
index e879fdc65fc8c7039fa1fde439c7450344bd48c1..154a4607335604835ba13d662a00e3d3c5c3fe53 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -400,7 +400,7 @@ GEM
       mime-types (~> 3.0)
       representable (~> 3.0)
       retriable (>= 2.0, < 4.0)
-    google-protobuf (3.7.1)
+    google-protobuf (3.8.0)
     googleapis-common-protos-types (1.0.4)
       google-protobuf (~> 3.0)
     googleauth (0.6.6)
@@ -440,9 +440,9 @@ GEM
       graphql (~> 1.6)
       html-pipeline (~> 2.8)
       sass (~> 3.4)
-    grpc (1.19.0)
-      google-protobuf (~> 3.1)
-      googleapis-common-protos-types (~> 1.0.0)
+    grpc (1.24.0)
+      google-protobuf (~> 3.8)
+      googleapis-common-protos-types (~> 1.0)
     gssapi (1.2.0)
       ffi (>= 1.0.1)
     haml (5.0.4)
@@ -1181,7 +1181,7 @@ DEPENDENCIES
   gitlab_omniauth-ldap (~> 2.1.1)
   gon (~> 6.2)
   google-api-client (~> 0.23)
-  google-protobuf (~> 3.7.1)
+  google-protobuf (~> 3.8.0)
   gpgme (~> 2.0.18)
   grape (~> 1.1.0)
   grape-entity (~> 0.7.1)
@@ -1190,7 +1190,7 @@ DEPENDENCIES
   graphiql-rails (~> 1.4.10)
   graphql (~> 1.9.11)
   graphql-docs (~> 1.6.0)
-  grpc (~> 1.19.0)
+  grpc (~> 1.24.0)
   gssapi
   haml_lint (~> 0.31.0)
   hamlit (~> 2.8.8)
diff --git a/changelogs/unreleased/sh-upgrade-grpc.yml b/changelogs/unreleased/sh-upgrade-grpc.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d0c3034eb9343d7eada1b114f3ad3a3e5c81b4ea
--- /dev/null
+++ b/changelogs/unreleased/sh-upgrade-grpc.yml
@@ -0,0 +1,5 @@
+---
+title: Update gRPC to v1.24.0
+merge_request: 18837
+author:
+type: other