diff --git a/typo3/sysext/install/Classes/Service/SessionService.php b/typo3/sysext/install/Classes/Service/SessionService.php
index 6fc93c3564f07cf36eaa58c0ae65885febb247a1..719c283d917558f0b3eace63c201205b9eef6c5b 100644
--- a/typo3/sysext/install/Classes/Service/SessionService.php
+++ b/typo3/sysext/install/Classes/Service/SessionService.php
@@ -271,8 +271,12 @@ class SessionService implements SingletonInterface
         }
         $isAdmin = (($backendUserRecord['admin'] ?? 0) & 1) === 1;
         $systemMaintainers = array_map('intval', $GLOBALS['TYPO3_CONF_VARS']['SYS']['systemMaintainers'] ?? []);
+        // in case no system maintainers are configured, all admin users are considered to be system maintainers
+        $isSystemMaintainer = empty($systemMaintainers) || in_array((int)$backendUserRecord['uid'], $systemMaintainers, true);
+        // in development context, all admin users are considered to be system maintainers
+        $hasDevelopmentContext = Environment::getContext()->isDevelopment();
         // stop here, in case the current admin tool session does not belong to a backend user having admin & maintainer privileges
-        if (!$isAdmin || !in_array((int)$backendUserRecord['uid'], $systemMaintainers, true)) {
+        if (!$isAdmin || !$hasDevelopmentContext && !$isSystemMaintainer) {
             return false;
         }