diff --git a/CHANGELOG b/CHANGELOG
index 83a5d1727f33ad65ea9adfabdda931551ba15f0e..2a91c099fb1b9f6ee0dc5d9a4bf02389699263ea 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -37,6 +37,9 @@ v 8.12.0 (unreleased)
   - Use the default branch for displaying the project icon instead of master !5792 (Hannes Rosenögger)
   - Adds response mime type to transaction metric action when it's not HTML
 
+v 8.11.4 (unreleased)
+  - Fix broken gitlab:backup:restore because of bad permissions on repo storage !6098 (Dirk Hörner)
+
 v 8.11.3 (unreleased)
   - Allow system info page to handle case where info is unavailable
   - Label list shows all issues (opened or closed) with that label
diff --git a/lib/backup/repository.rb b/lib/backup/repository.rb
index f117fc3d37def0815360c09e4221dbadea2a9f11..9fcd9a3f9994799fce4855a992653c839fcd3447 100644
--- a/lib/backup/repository.rb
+++ b/lib/backup/repository.rb
@@ -55,7 +55,7 @@ module Backup
         bk_repos_path = File.join(path, '..', 'repositories.old.' + Time.now.to_i.to_s)
         FileUtils.mv(path, bk_repos_path)
         # This is expected from gitlab:check
-        FileUtils.mkdir_p(path, mode: 2770)
+        FileUtils.mkdir_p(path, mode: 02770)
       end
 
       Project.find_each(batch_size: 1000) do |project|