diff --git a/typo3/sysext/backend/Classes/Utility/BackendUtility.php b/typo3/sysext/backend/Classes/Utility/BackendUtility.php
index f010560e0afac2a4f3c31d42d844f1256c77a352..af4d1bca06b9bcb8d221db9db817fe6626ef7288 100644
--- a/typo3/sysext/backend/Classes/Utility/BackendUtility.php
+++ b/typo3/sysext/backend/Classes/Utility/BackendUtility.php
@@ -412,11 +412,12 @@ class BackendUtility
     {
         $runtimeCache = GeneralUtility::makeInstance(CacheManager::class)->getCache('runtime');
         $pageForRootlineCache = $runtimeCache->get('backendUtilityPageForRootLine') ?: [];
-        $ident = $uid . '-' . $clause . '-' . $workspaceOL . ($additionalFields ? '-' . md5(implode(',', $additionalFields)) : '');
+        $statementCacheIdent = md5($clause . ($additionalFields ? '-' . implode(',', $additionalFields) : ''));
+        $ident = $uid . '-' . $workspaceOL . '-' . $statementCacheIdent;
         if (is_array($pageForRootlineCache[$ident] ?? false)) {
             $row = $pageForRootlineCache[$ident];
         } else {
-            $statement = $runtimeCache->get('getPageForRootlineStatement');
+            $statement = $runtimeCache->get('getPageForRootlineStatement-' . $statementCacheIdent);
             if (!$statement) {
                 $queryBuilder = static::getQueryBuilderForTable('pages');
                 $queryBuilder->getRestrictions()
@@ -454,7 +455,7 @@ class BackendUtility
                         QueryHelper::stripLogicalOperatorPrefix($clause)
                     );
                 $statement = $queryBuilder->execute();
-                $runtimeCache->set('getPageForRootlineStatement', $statement);
+                $runtimeCache->set('getPageForRootlineStatement-' . $statementCacheIdent, $statement);
             } else {
                 $statement->bindValue(1, (int)$uid);
                 $statement->execute();