diff --git a/src/modules/fstab/fstab.conf b/src/modules/fstab/fstab.conf
index 11adff2ed..06a935e3a 100644
--- a/src/modules/fstab/fstab.conf
+++ b/src/modules/fstab/fstab.conf
@@ -12,6 +12,11 @@ mountOptions:
     default: defaults,noatime
     btrfs: defaults,noatime,space_cache,autodefrag
 
+# Mount options to use for the EFI System Partition. If not defined, it
+# takes either the value of *vfat*, or if also missing, *default* from
+# *mountOptions*
+efiMountOptions: umask=0077
+
 # If a filesystem is on an SSD, add the following options. If a specific
 # filesystem is listed here, use those options, otherwise no additional
 # options are set (i.e. there is no *default* like in *mountOptions*).
diff --git a/src/modules/fstab/main.py b/src/modules/fstab/main.py
index f793c9b7f..4a696f46b 100644
--- a/src/modules/fstab/main.py
+++ b/src/modules/fstab/main.py
@@ -246,8 +246,8 @@ class FstabGenerator(object):
         if not mount_point:
             mount_point = "swap"
 
-        options = self.mount_options.get(filesystem,
-                                         self.mount_options["default"])
+        options = self.get_mount_options(filesystem, mount_point)
+
         if is_ssd:
             extra = self.ssd_extra_mount_options.get(filesystem)
 
@@ -295,6 +295,16 @@ class FstabGenerator(object):
             if partition["mountPoint"]:
                 mkdir_p(self.root_mount_point + partition["mountPoint"])
 
+    def get_mount_options(self, filesystem, mount_point):
+        efiMountPoint = libcalamares.globalstorage.value("efiSystemPartition")
+        job_config = libcalamares.job.configuration
+
+        if (mount_point == efiMountPoint and "efiMountOptions" in job_config):
+            return job_config["efiMountOptions"]
+
+        return self.mount_options.get(filesystem,
+                                      self.mount_options["default"])
+
 
 def run():
     """ Configures fstab.