diff --git a/typo3/sysext/backend/Classes/Controller/BackendController.php b/typo3/sysext/backend/Classes/Controller/BackendController.php
index 37f9cf00ff0c0a12e1b38bd2c4d6368f615f32cf..f2730773e2634b23921f2dda2679c864e545cc10 100644
--- a/typo3/sysext/backend/Classes/Controller/BackendController.php
+++ b/typo3/sysext/backend/Classes/Controller/BackendController.php
@@ -263,7 +263,7 @@ class BackendController
         $view = $this->getFluidTemplateObject($this->templatePath . 'Backend/Main.html');
 
         // Extension Configuration to find the TYPO3 logo in the left corner
-        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend']);
+        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend'], ['allowed_classes' => false]);
         $logoPath = '';
         if (!empty($extConf['backendLogo'])) {
             $customBackendLogo = GeneralUtility::getFileAbsFileName($extConf['backendLogo']);
diff --git a/typo3/sysext/backend/Classes/Controller/LoginController.php b/typo3/sysext/backend/Classes/Controller/LoginController.php
index 4923a2e537475a5fd6d8665f18375b4b85952ba9..8172309f81f7e98b794c93b26dcc848066ed6c38 100644
--- a/typo3/sysext/backend/Classes/Controller/LoginController.php
+++ b/typo3/sysext/backend/Classes/Controller/LoginController.php
@@ -159,7 +159,7 @@ class LoginController
         $this->checkRedirect();
 
         // Extension Configuration
-        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend']);
+        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['backend'], ['allowed_classes' => false]);
 
         // Background Image
         if (!empty($extConf['loginBackgroundImage'])) {
diff --git a/typo3/sysext/compatibility7/Classes/Controller/SearchFormController.php b/typo3/sysext/compatibility7/Classes/Controller/SearchFormController.php
index 5144c08769c6e5e1d85dfd719ba43c7bd5b45bfe..783cf520f3cf8dd505e5b12fcbec17d754af1b64 100755
--- a/typo3/sysext/compatibility7/Classes/Controller/SearchFormController.php
+++ b/typo3/sysext/compatibility7/Classes/Controller/SearchFormController.php
@@ -216,7 +216,7 @@ class SearchFormController extends \TYPO3\CMS\Frontend\Plugin\AbstractPlugin
     public function initialize()
     {
         // Indexer configuration from Extension Manager interface:
-        $this->indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search']);
+        $this->indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search'], ['allowed_classes' => false]);
         $this->enableMetaphoneSearch = (bool)$this->indexerConfig['enableMetaphoneSearch'];
         $this->storeMetaphoneInfoAsWords = !\TYPO3\CMS\IndexedSearch\Utility\IndexedSearchUtility::isTableUsed('index_words');
         $this->timeTracker = GeneralUtility::makeInstance(TimeTracker::class);
diff --git a/typo3/sysext/css_styled_content/Configuration/TCA/Overrides/pages.php b/typo3/sysext/css_styled_content/Configuration/TCA/Overrides/pages.php
index 739e7fdf941b732b4ed6325ec858464bb0048653..08bfb6848d5346831794c4b66955af5f700fd7d7 100644
--- a/typo3/sysext/css_styled_content/Configuration/TCA/Overrides/pages.php
+++ b/typo3/sysext/css_styled_content/Configuration/TCA/Overrides/pages.php
@@ -1,18 +1,14 @@
 <?php
 defined('TYPO3_MODE') or die();
 
-call_user_func(
-    function ($extKey) {
-        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extKey]);
-
-        if (isset($extConf['loadContentElementWizardTsConfig']) && (int)$extConf['loadContentElementWizardTsConfig'] === 0) {
-            // Add pageTSconfig
-            \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
-                $extKey,
-                'Configuration/PageTSconfig/NewContentElementWizard.ts',
-                'CSS-based Content Elements'
-            );
-        }
-    },
-    'css_styled_content'
-);
+call_user_func(function () {
+    $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['css_styled_content'], ['allowed_classes' => false]);
+    if (isset($extConf['loadContentElementWizardTsConfig']) && (int)$extConf['loadContentElementWizardTsConfig'] === 0) {
+        // Add pageTSconfig
+        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
+            'css_styled_content',
+            'Configuration/PageTSconfig/NewContentElementWizard.ts',
+            'CSS-based Content Elements'
+        );
+    }
+});
diff --git a/typo3/sysext/css_styled_content/ext_localconf.php b/typo3/sysext/css_styled_content/ext_localconf.php
index 0018f5623d9b42a5efc185effac9c986ad6f5e97..79a5863aac5cde2203b9bfac4a648cf57082747e 100644
--- a/typo3/sysext/css_styled_content/ext_localconf.php
+++ b/typo3/sysext/css_styled_content/ext_localconf.php
@@ -23,24 +23,21 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php'][
     \TYPO3\CMS\CssStyledContent\Hooks\PageLayoutView\TextPreviewRenderer::class;
 
 if (TYPO3_MODE === 'BE') {
-    call_user_func(
-        function ($extKey) {
-            // Get the extension configuration
-            $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extKey]);
-
-            if (!isset($extConf['loadContentElementWizardTsConfig']) || (int)$extConf['loadContentElementWizardTsConfig'] === 1) {
-                // Include new content elements to modWizards
-                \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:css_styled_content/Configuration/PageTSconfig/NewContentElementWizard.ts">');
-            }
-
-            $dispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
-            $dispatcher->connect(
-                \TYPO3\CMS\Extensionmanager\Controller\ConfigurationController::class,
-                'afterExtensionConfigurationWrite',
-                \TYPO3\CMS\CssStyledContent\Hooks\TcaCacheClearing::class,
-                'clearTcaCache'
-            );
-        },
-        $_EXTKEY
-    );
+    call_user_func(function () {
+        // Get the extension configuration
+        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['css_styled_content'], ['allowed_classes' => false]);
+
+        if (!isset($extConf['loadContentElementWizardTsConfig']) || (int)$extConf['loadContentElementWizardTsConfig'] === 1) {
+            // Include new content elements to modWizards
+            \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:css_styled_content/Configuration/PageTSconfig/NewContentElementWizard.ts">');
+        }
+
+        $dispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
+        $dispatcher->connect(
+            \TYPO3\CMS\Extensionmanager\Controller\ConfigurationController::class,
+            'afterExtensionConfigurationWrite',
+            \TYPO3\CMS\CssStyledContent\Hooks\TcaCacheClearing::class,
+            'clearTcaCache'
+        );
+    });
 }
diff --git a/typo3/sysext/dbal/Classes/Database/DatabaseConnection.php b/typo3/sysext/dbal/Classes/Database/DatabaseConnection.php
index f1bada85f3b51604ebd7e409c6d59abbfab480dc..0c8b92b516e3162ac656ca7c5b44c808e0206a52 100644
--- a/typo3/sysext/dbal/Classes/Database/DatabaseConnection.php
+++ b/typo3/sysext/dbal/Classes/Database/DatabaseConnection.php
@@ -2564,7 +2564,7 @@ class DatabaseConnection extends \TYPO3\CMS\Core\Database\DatabaseConnection
      */
     public function sql_query($query)
     {
-        $globalConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['dbal']);
+        $globalConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['dbal'], ['allowed_classes' => false]);
         if ($globalConfig['sql_query.']['passthrough']) {
             return parent::sql_query($query);
         }
diff --git a/typo3/sysext/extensionmanager/Classes/Utility/ConfigurationUtility.php b/typo3/sysext/extensionmanager/Classes/Utility/ConfigurationUtility.php
index 0c2e0dfbb9baa1592a14e90ff868986f44f0a357..c6ae97aa36311929790b06e408a971f4b4b7f295 100644
--- a/typo3/sysext/extensionmanager/Classes/Utility/ConfigurationUtility.php
+++ b/typo3/sysext/extensionmanager/Classes/Utility/ConfigurationUtility.php
@@ -79,7 +79,8 @@ class ConfigurationUtility implements \TYPO3\CMS\Core\SingletonInterface
     public function getCurrentConfiguration($extensionKey)
     {
         $mergedConfiguration = $this->getDefaultConfigurationFromExtConfTemplateAsValuedArray($extensionKey);
-        $currentExtensionConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extensionKey]);
+        // No objects allowed in extConf at all - it is safe to deny that during unserialize()
+        $currentExtensionConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extensionKey], ['allowed_classes' => false]);
         $currentExtensionConfig = is_array($currentExtensionConfig) ? $currentExtensionConfig : array();
         $currentExtensionConfig = $this->convertNestedToValuedConfiguration($currentExtensionConfig);
         \TYPO3\CMS\Core\Utility\ArrayUtility::mergeRecursiveWithOverrule(
diff --git a/typo3/sysext/extensionmanager/ext_localconf.php b/typo3/sysext/extensionmanager/ext_localconf.php
index f38c6bb4d5b12c79fcc1a2859b426eb48cb43016..8ab4e256e4ef25915966fe71b191b76dbf25156e 100644
--- a/typo3/sysext/extensionmanager/ext_localconf.php
+++ b/typo3/sysext/extensionmanager/ext_localconf.php
@@ -2,7 +2,7 @@
 defined('TYPO3_MODE') or die();
 
 // Register extension list update task
-$_EXTCONF = unserialize($_EXTCONF);
+$_EXTCONF = unserialize($_EXTCONF, ['allowed_classes' => false]);
 if (empty($_EXTCONF['offlineMode'])) {
     $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks'][\TYPO3\CMS\Extensionmanager\Task\UpdateExtensionListTask::class] = array(
         'extension' => $_EXTKEY,
diff --git a/typo3/sysext/fluid_styled_content/Configuration/TCA/Overrides/pages.php b/typo3/sysext/fluid_styled_content/Configuration/TCA/Overrides/pages.php
index 859ea0f700ee3a2f931facdf943bfeaf710fa278..d75617374801da906608b7628643d4b41ee68f29 100644
--- a/typo3/sysext/fluid_styled_content/Configuration/TCA/Overrides/pages.php
+++ b/typo3/sysext/fluid_styled_content/Configuration/TCA/Overrides/pages.php
@@ -1,18 +1,14 @@
 <?php
 defined('TYPO3_MODE') or die();
 
-call_user_func(
-    function ($extKey) {
-        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extKey]);
-
-        if (isset($extConf['loadContentElementWizardTsConfig']) && (int)$extConf['loadContentElementWizardTsConfig'] === 0) {
-            // Add pageTSconfig
-            \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
-                $extKey,
-                'Configuration/PageTSconfig/NewContentElementWizard.ts',
-                'Fluid-based Content Elements'
-            );
-        }
-    },
-    'fluid_styled_content'
-);
+call_user_func(function () {
+    $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['fluid_styled_content'], ['allowed_classes' => false]);
+    if (isset($extConf['loadContentElementWizardTsConfig']) && (int)$extConf['loadContentElementWizardTsConfig'] === 0) {
+        // Add pageTSconfig
+        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile(
+            'fluid_styled_content',
+            'Configuration/PageTSconfig/NewContentElementWizard.ts',
+            'Fluid-based Content Elements'
+        );
+    }
+});
diff --git a/typo3/sysext/fluid_styled_content/ext_localconf.php b/typo3/sysext/fluid_styled_content/ext_localconf.php
index 272b8b7e160801f0426635357ccc78e581087b03..7cca6aed3e9a5850bbca5f56812ba7b223b51bdf 100644
--- a/typo3/sysext/fluid_styled_content/ext_localconf.php
+++ b/typo3/sysext/fluid_styled_content/ext_localconf.php
@@ -8,24 +8,21 @@ $GLOBALS['TYPO3_CONF_VARS']['FE']['contentRenderingTemplates'][] = 'fluidstyledc
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem']['textmedia'] = \TYPO3\CMS\FluidStyledContent\Hooks\TextmediaPreviewRenderer::class;
 
 if (TYPO3_MODE === 'BE') {
-    call_user_func(
-        function ($extKey) {
-            // Get the extension configuration
-            $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extKey]);
+    call_user_func(function () {
+        // Get the extension configuration
+        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['fluid_styled_content'], ['allowed_classes' => false]);
 
-            if (!isset($extConf['loadContentElementWizardTsConfig']) || (int)$extConf['loadContentElementWizardTsConfig'] === 1) {
-                // Include new content elements to modWizards
-                \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:fluid_styled_content/Configuration/PageTSconfig/NewContentElementWizard.ts">');
-            }
+        if (!isset($extConf['loadContentElementWizardTsConfig']) || (int)$extConf['loadContentElementWizardTsConfig'] === 1) {
+            // Include new content elements to modWizards
+            \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:fluid_styled_content/Configuration/PageTSconfig/NewContentElementWizard.ts">');
+        }
 
-            $dispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
-            $dispatcher->connect(
-                \TYPO3\CMS\Extensionmanager\Controller\ConfigurationController::class,
-                'afterExtensionConfigurationWrite',
-                \TYPO3\CMS\FluidStyledContent\Hooks\TcaCacheClearing::class,
-                'clearTcaCache'
-            );
-        },
-        $_EXTKEY
-    );
+        $dispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
+        $dispatcher->connect(
+            \TYPO3\CMS\Extensionmanager\Controller\ConfigurationController::class,
+            'afterExtensionConfigurationWrite',
+            \TYPO3\CMS\FluidStyledContent\Hooks\TcaCacheClearing::class,
+            'clearTcaCache'
+        );
+    });
 }
diff --git a/typo3/sysext/indexed_search/Classes/Controller/AdministrationController.php b/typo3/sysext/indexed_search/Classes/Controller/AdministrationController.php
index 033050573e6b537794b0431fccbe36557dcca369..30643ffbc43e085f05c9a60f0b699f721ee95636 100644
--- a/typo3/sysext/indexed_search/Classes/Controller/AdministrationController.php
+++ b/typo3/sysext/indexed_search/Classes/Controller/AdministrationController.php
@@ -151,7 +151,7 @@ class AdministrationController extends ActionController
     public function initializeAction()
     {
         $this->pageUid = (int)GeneralUtility::_GET('id');
-        $this->indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search']);
+        $this->indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search'], ['allowed_classes' => false]);
         $this->enableMetaphoneSearch = (bool)$this->indexerConfig['enableMetaphoneSearch'];
         $this->indexer = GeneralUtility::makeInstance(Indexer::class);
 
diff --git a/typo3/sysext/indexed_search/Classes/Controller/SearchController.php b/typo3/sysext/indexed_search/Classes/Controller/SearchController.php
index 2e75a46f6515cca2aa2be3b3f87670441ffb1085..671b0103638441543a5dcfea849e31d7550ba365 100644
--- a/typo3/sysext/indexed_search/Classes/Controller/SearchController.php
+++ b/typo3/sysext/indexed_search/Classes/Controller/SearchController.php
@@ -175,7 +175,7 @@ class SearchController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControlle
             $searchData = array_merge($this->settings['defaultOptions'], $searchData);
         }
         // Indexer configuration from Extension Manager interface:
-        $this->indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search']);
+        $this->indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search'], ['allowed_classes' => false]);
         $this->enableMetaphoneSearch = (bool)$this->indexerConfig['enableMetaphoneSearch'];
         $this->initializeExternalParsers();
         // If "_sections" is set, this value overrides any existing value.
diff --git a/typo3/sysext/indexed_search/Classes/FileContentParser.php b/typo3/sysext/indexed_search/Classes/FileContentParser.php
index 9cc7be2cc19db9f820dafaf6fb59e34a3adbfa7e..87978ae3ae9773421aee4960cca837a71bc7c629 100644
--- a/typo3/sysext/indexed_search/Classes/FileContentParser.php
+++ b/typo3/sysext/indexed_search/Classes/FileContentParser.php
@@ -76,7 +76,7 @@ class FileContentParser
     public function initParser($extension)
     {
         // Then read indexer-config and set if appropriate:
-        $indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search']);
+        $indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search'], ['allowed_classes' => false]);
         // If windows, apply extension to tool name:
         $exe = TYPO3_OS == 'WIN' ? '.exe' : '';
         // lg
@@ -288,7 +288,7 @@ class FileContentParser
     public function searchTypeMediaTitle($extension)
     {
         // Read indexer-config
-        $indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search']);
+        $indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search'], ['allowed_classes' => false]);
         // Ignore extensions
         $ignoreExtensions = GeneralUtility::trimExplode(',', strtolower($indexerConfig['ignoreExtensions']), true);
         if (in_array($extension, $ignoreExtensions)) {
diff --git a/typo3/sysext/indexed_search/Classes/Indexer.php b/typo3/sysext/indexed_search/Classes/Indexer.php
index e4b09284df7858e3c5bd4e997e5e3ff4eff1e332..4749ed2b8d10ca3bc3a57e3991f026acc6a997fc 100644
--- a/typo3/sysext/indexed_search/Classes/Indexer.php
+++ b/typo3/sysext/indexed_search/Classes/Indexer.php
@@ -251,7 +251,7 @@ class Indexer
     public function hook_indexContent(&$pObj)
     {
         // Indexer configuration from Extension Manager interface:
-        $indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search']);
+        $indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search'], ['allowed_classes' => false]);
         // Crawler activation:
         // Requirements are that the crawler is loaded, a crawler session is running and re-indexing requested as processing instruction:
         if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('crawler') && $pObj->applicationData['tx_crawler']['running'] && in_array('tx_indexedsearch_reindex', $pObj->applicationData['tx_crawler']['parameters']['procInstructions'])) {
@@ -474,7 +474,7 @@ class Indexer
         // Setting phash / phash_grouping which identifies the indexed page based on some of these variables:
         $this->setT3Hashes();
         // Indexer configuration from Extension Manager interface:
-        $this->indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search']);
+        $this->indexerConfig = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['indexed_search'], ['allowed_classes' => false]);
         $this->tstamp_minAge = MathUtility::forceIntegerInRange($this->indexerConfig['minAge'] * 3600, 0);
         $this->tstamp_maxAge = MathUtility::forceIntegerInRange($this->indexerConfig['maxAge'] * 3600, 0);
         $this->maxExternalFiles = MathUtility::forceIntegerInRange($this->indexerConfig['maxExternalFiles'], 0, 1000, 5);
diff --git a/typo3/sysext/indexed_search/ext_localconf.php b/typo3/sysext/indexed_search/ext_localconf.php
index 20ece71edbbdb3ed5c7c96d1fc90eb6794dc7164..321ce16a27a3fa6929456ece0ce5212a2150b46d 100644
--- a/typo3/sysext/indexed_search/ext_localconf.php
+++ b/typo3/sysext/indexed_search/ext_localconf.php
@@ -45,7 +45,7 @@ $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['indexed_search']['external_parsers'] = a
 );
 $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['indexed_search']['use_tables'] = 'index_phash,index_fulltext,index_rel,index_words,index_section,index_grlist,index_stat_search,index_stat_word,index_debug,index_config';
 // unserializing the configuration so we can use it here:
-$_EXTCONF = unserialize($_EXTCONF);
+$_EXTCONF = unserialize($_EXTCONF, ['allowed_classes' => false]);
 // Use the advanced doubleMetaphone parser instead of the internal one (usage of metaphone parsers is generally disabled by default)
 if (isset($_EXTCONF['enableMetaphoneSearch']) && (int)$_EXTCONF['enableMetaphoneSearch'] == 2) {
     $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['indexed_search']['metaphone'] = \TYPO3\CMS\IndexedSearch\Utility\DoubleMetaPhoneUtility::class;
diff --git a/typo3/sysext/install/Classes/Service/SilentConfigurationUpgradeService.php b/typo3/sysext/install/Classes/Service/SilentConfigurationUpgradeService.php
index 5ac4ac8a0d1d691ebb68d34839ca5bfb7f579549..03d8f6e1f5e43ff4d78b58c6b2db57090105921b 100755
--- a/typo3/sysext/install/Classes/Service/SilentConfigurationUpgradeService.php
+++ b/typo3/sysext/install/Classes/Service/SilentConfigurationUpgradeService.php
@@ -98,7 +98,6 @@ class SilentConfigurationUpgradeService
     {
         $this->generateEncryptionKeyIfNeeded();
         $this->configureBackendLoginSecurity();
-        $this->configureSaltedPasswords();
         $this->migrateImageProcessorSetting();
         $this->transferHttpSettings();
         $this->disableImageMagickDetailSettingsIfImageMagickIsDisabled();
@@ -154,43 +153,6 @@ class SilentConfigurationUpgradeService
         }
     }
 
-    /**
-     * Check the settings for salted passwords extension to load it as a required extension.
-     * Unset obsolete configuration options if given.
-     *
-     * @return void
-     */
-    protected function configureSaltedPasswords()
-    {
-        $defaultConfiguration = $this->configurationManager->getDefaultConfiguration();
-        $defaultExtensionConfiguration = unserialize($defaultConfiguration['EXT']['extConf']['saltedpasswords']);
-        try {
-            $extensionConfiguration = @unserialize($this->configurationManager->getLocalConfigurationValueByPath('EXT/extConf/saltedpasswords'));
-        } catch (\RuntimeException $e) {
-            $extensionConfiguration = [];
-        }
-        if (is_array($extensionConfiguration) && !empty($extensionConfiguration)) {
-            if (isset($extensionConfiguration['BE.']['enabled'])) {
-                if ($extensionConfiguration['BE.']['enabled']) {
-                    unset($extensionConfiguration['BE.']['enabled']);
-                } else {
-                    $extensionConfiguration['BE.'] = $defaultExtensionConfiguration['BE.'];
-                }
-                $this->configurationManager->setLocalConfigurationValueByPath(
-                    'EXT/extConf/saltedpasswords',
-                    serialize($extensionConfiguration)
-                );
-                $this->throwRedirectException();
-            }
-        } else {
-            $this->configurationManager->setLocalConfigurationValueByPath(
-                'EXT/extConf/saltedpasswords',
-                serialize($defaultExtensionConfiguration)
-            );
-            $this->throwRedirectException();
-        }
-    }
-
     /**
      * The encryption key is crucial for securing form tokens
      * and the whole TYPO3 link rendering later on. A random key is set here in
diff --git a/typo3/sysext/install/Tests/Unit/Service/SilentConfigurationUpgradeServiceTest.php b/typo3/sysext/install/Tests/Unit/Service/SilentConfigurationUpgradeServiceTest.php
index 10bc6808890c7d728c08f48e97982ba83c155b08..359da5de869b5d5d6680150f5a5eadc388ce75a0 100644
--- a/typo3/sysext/install/Tests/Unit/Service/SilentConfigurationUpgradeServiceTest.php
+++ b/typo3/sysext/install/Tests/Unit/Service/SilentConfigurationUpgradeServiceTest.php
@@ -187,141 +187,6 @@ class SilentConfigurationUpgradeServiceTest extends \TYPO3\CMS\Core\Tests\UnitTe
         $silentConfigurationUpgradeServiceInstance->_call('removeObsoleteLocalConfigurationSettings');
     }
 
-    /**
-     * @test
-     */
-    public function configureSaltedPasswordsWithDefaultConfiguration()
-    {
-        /** @var $silentConfigurationUpgradeServiceInstance SilentConfigurationUpgradeService|\PHPUnit_Framework_MockObject_MockObject|\TYPO3\CMS\Core\Tests\AccessibleObjectInterface */
-        $silentConfigurationUpgradeServiceInstance = $this->getAccessibleMock(
-            SilentConfigurationUpgradeService::class,
-            array('dummy'),
-            array(),
-            '',
-            false
-        );
-        $config = 'a:2:{s:3:"BE.";a:3:{s:11:"forceSalted";i:0;s:15:"onlyAuthService";i:0;s:12:"updatePasswd";i:1;}s:3:"FE.";a:4:{s:7:"enabled";i:0;s:11:"forceSalted";i:0;s:15:"onlyAuthService";i:0;s:12:"updatePasswd";i:1;}}';
-        $defaultConfiguration = array();
-        $defaultConfiguration['EXT']['extConf']['saltedpasswords'] = $config;
-
-        $closure = function () {
-            throw new \RuntimeException('Path does not exist in array', 1341397869);
-        };
-
-        $this->createConfigurationManagerWithMockedMethods(
-            array(
-                'getDefaultConfiguration',
-                'getLocalConfigurationValueByPath',
-                'setLocalConfigurationValueByPath',
-            )
-        );
-        $this->configurationManager->expects($this->exactly(1))
-            ->method('getDefaultConfiguration')
-            ->will($this->returnValue($defaultConfiguration));
-        $this->configurationManager->expects($this->exactly(1))
-            ->method('getLocalConfigurationValueByPath')
-            ->will($this->returnCallback($closure));
-        $this->configurationManager->expects($this->once())
-            ->method('setLocalConfigurationValueByPath')
-            ->with($this->equalTo('EXT/extConf/saltedpasswords'), $this->equalTo($config));
-
-        $this->expectException(RedirectException::class);
-
-        $silentConfigurationUpgradeServiceInstance->_set('configurationManager', $this->configurationManager);
-
-        $silentConfigurationUpgradeServiceInstance->_call('configureSaltedPasswords');
-    }
-
-    /**
-     * @test
-     */
-    public function configureSaltedPasswordsWithExtensionConfigurationBeEnabled()
-    {
-        /** @var $silentConfigurationUpgradeServiceInstance SilentConfigurationUpgradeService|\PHPUnit_Framework_MockObject_MockObject|\TYPO3\CMS\Core\Tests\AccessibleObjectInterface */
-        $silentConfigurationUpgradeServiceInstance = $this->getAccessibleMock(
-            SilentConfigurationUpgradeService::class,
-            array('dummy'),
-            array(),
-            '',
-            false
-        );
-        $config = 'a:2:{s:3:"BE.";a:1:{s:21:"saltedPWHashingMethod";}s:3:"FE.";a:2:{s:7:"enabled";i:0;s:11:"forceSalted";i:0;}}';
-        $defaultConfiguration = array();
-        $defaultConfiguration['EXT']['extConf']['saltedpasswords'] = $config;
-
-        $currentLocalConfiguration = array(
-            array('EXT/extConf/saltedpasswords', 'a:2:{s:3:"BE.";a:1:{s:7:"enabled";i:1;}s:3:"FE.";a:1:{s:7:"enabled";i:0;}}')
-        );
-        $newConfig = 'a:2:{s:3:"BE.";a:0:{}s:3:"FE.";a:1:{s:7:"enabled";i:0;}}';
-        $this->createConfigurationManagerWithMockedMethods(
-            array(
-                'getDefaultConfiguration',
-                'getLocalConfigurationValueByPath',
-                'setLocalConfigurationValueByPath',
-            )
-        );
-        $this->configurationManager->expects($this->exactly(1))
-            ->method('getDefaultConfiguration')
-            ->will($this->returnValue($defaultConfiguration));
-        $this->configurationManager->expects($this->exactly(1))
-            ->method('getLocalConfigurationValueByPath')
-            ->will($this->returnValueMap($currentLocalConfiguration));
-        $this->configurationManager->expects($this->once())
-            ->method('setLocalConfigurationValueByPath')
-            ->with($this->equalTo('EXT/extConf/saltedpasswords'), $this->equalTo($newConfig));
-
-        $this->expectException(RedirectException::class);
-
-        $silentConfigurationUpgradeServiceInstance->_set('configurationManager', $this->configurationManager);
-
-        $silentConfigurationUpgradeServiceInstance->_call('configureSaltedPasswords');
-    }
-
-    /**
-     * @test
-     */
-    public function configureSaltedPasswordsWithExtensionConfigurationBeNotEnabled()
-    {
-        /** @var $silentConfigurationUpgradeServiceInstance SilentConfigurationUpgradeService|\PHPUnit_Framework_MockObject_MockObject|\TYPO3\CMS\Core\Tests\AccessibleObjectInterface */
-        $silentConfigurationUpgradeServiceInstance = $this->getAccessibleMock(
-            SilentConfigurationUpgradeService::class,
-            array('dummy'),
-            array(),
-            '',
-            false
-        );
-        $config = 'a:2:{s:3:"BE.";a:1:{s:15:"onlyAuthService";i:0;}s:3:"FE.";a:2:{s:7:"enabled";i:0;s:11:"forceSalted";i:0;}}';
-        $defaultConfiguration = array();
-        $defaultConfiguration['EXT']['extConf']['saltedpasswords'] = $config;
-
-        $currentLocalConfiguration = array(
-            array('EXT/extConf/saltedpasswords', 'a:2:{s:3:"BE.";a:2:{s:7:"enabled";i:0;s:12:"updatePasswd";i:1;}s:3:"FE.";a:1:{s:7:"enabled";i:0;}}')
-        );
-        $newConfig = 'a:2:{s:3:"BE.";a:1:{s:15:"onlyAuthService";i:0;}s:3:"FE.";a:1:{s:7:"enabled";i:0;}}';
-        $this->createConfigurationManagerWithMockedMethods(
-            array(
-                'getDefaultConfiguration',
-                'getLocalConfigurationValueByPath',
-                'setLocalConfigurationValueByPath',
-            )
-        );
-        $this->configurationManager->expects($this->exactly(1))
-            ->method('getDefaultConfiguration')
-            ->will($this->returnValue($defaultConfiguration));
-        $this->configurationManager->expects($this->exactly(1))
-            ->method('getLocalConfigurationValueByPath')
-            ->will($this->returnValueMap($currentLocalConfiguration));
-        $this->configurationManager->expects($this->once())
-            ->method('setLocalConfigurationValueByPath')
-            ->with($this->equalTo('EXT/extConf/saltedpasswords'), $this->equalTo($newConfig));
-
-        $this->expectException(RedirectException::class);
-
-        $silentConfigurationUpgradeServiceInstance->_set('configurationManager', $this->configurationManager);
-
-        $silentConfigurationUpgradeServiceInstance->_call('configureSaltedPasswords');
-    }
-
     /**
      * @test
      */
@@ -711,4 +576,4 @@ class SilentConfigurationUpgradeServiceTest extends \TYPO3\CMS\Core\Tests\UnitTe
 
         $silentConfigurationUpgradeServiceInstance->_call('setImageMagickDetailSettings');
     }
-}
+}
\ No newline at end of file
diff --git a/typo3/sysext/rsaauth/Classes/Backend/CommandLineBackend.php b/typo3/sysext/rsaauth/Classes/Backend/CommandLineBackend.php
index 42ffba888e8ee184d91588af3cba012ce94ea934..406e5663153bc0b78e20c164010a6a397b648c8a 100644
--- a/typo3/sysext/rsaauth/Classes/Backend/CommandLineBackend.php
+++ b/typo3/sysext/rsaauth/Classes/Backend/CommandLineBackend.php
@@ -54,7 +54,7 @@ class CommandLineBackend extends AbstractBackend
     {
         $this->opensslPath = CommandUtility::getCommand('openssl');
         // Get temporary directory from the configuration
-        $extconf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['rsaauth']);
+        $extconf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['rsaauth'], ['allowed_classes' => false]);
         if (
             $extconf['temporaryDirectory'] !== ''
             && $extconf['temporaryDirectory'][0] === '/'
diff --git a/typo3/sysext/rsaauth/Classes/BackendWarnings.php b/typo3/sysext/rsaauth/Classes/BackendWarnings.php
index ca45eeb21bafb8ae41cd215b16deb39922ae9745..ecd702851d5835f8f40195c33e7d203eff7fa1fe 100644
--- a/typo3/sysext/rsaauth/Classes/BackendWarnings.php
+++ b/typo3/sysext/rsaauth/Classes/BackendWarnings.php
@@ -34,7 +34,7 @@ class BackendWarnings
             $lang = $this->getLanguageService();
             $warnings['rsaauth_cmdline'] = $lang->sL('LLL:EXT:rsaauth/Resources/Private/Language/locallang.xlf:hook_using_cmdline');
             // Check the path
-            $extconf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['rsaauth']);
+            $extconf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['rsaauth'], ['allowed_classes' => false]);
             $path = trim($extconf['temporaryDirectory']);
             if ($path == '') {
                 // Path is empty
diff --git a/typo3/sysext/rtehtmlarea/ext_localconf.php b/typo3/sysext/rtehtmlarea/ext_localconf.php
index dfa123994d4304033c021d32a648974d09889792..c97f4bff078a34027a8039182ac6b78f49efa254 100644
--- a/typo3/sysext/rtehtmlarea/ext_localconf.php
+++ b/typo3/sysext/rtehtmlarea/ext_localconf.php
@@ -13,7 +13,7 @@ require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('rtehtm
 
 $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['rtehtmlarea']['version'] = $EM_CONF['rtehtmlarea']['version'];
 // Unserializing the configuration so we can use it here
-$_EXTCONF = unserialize($_EXTCONF);
+$_EXTCONF = unserialize($_EXTCONF, ['allowed_classes' => false]);
 
 // Add default RTE transformation configuration
 \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('<INCLUDE_TYPOSCRIPT: source="FILE:EXT:rtehtmlarea/Configuration/PageTSconfig/Proc/pageTSConfig.txt">');
diff --git a/typo3/sysext/saltedpasswords/Classes/Utility/ExtensionManagerConfigurationUtility.php b/typo3/sysext/saltedpasswords/Classes/Utility/ExtensionManagerConfigurationUtility.php
index 73de410afbed00b5d7b813174d41bb36c33b5d0a..45a56e0cad3a06524c337cf1e3c1b60f015342a2 100755
--- a/typo3/sysext/saltedpasswords/Classes/Utility/ExtensionManagerConfigurationUtility.php
+++ b/typo3/sysext/saltedpasswords/Classes/Utility/ExtensionManagerConfigurationUtility.php
@@ -149,7 +149,7 @@ class ExtensionManagerConfigurationUtility
     private function init()
     {
         $requestSetup = $this->processPostData((array) $_REQUEST['data']);
-        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['saltedpasswords']);
+        $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['saltedpasswords'], ['allowed_classes' => false]);
         $this->extConf['BE'] = array_merge((array)$extConf['BE.'], (array)$requestSetup['BE.']);
         $this->extConf['FE'] = array_merge((array)$extConf['FE.'], (array)$requestSetup['FE.']);
         $this->getLanguageService()->includeLLFile('EXT:saltedpasswords/Resources/Private/Language/locallang.xlf');
diff --git a/typo3/sysext/saltedpasswords/Classes/Utility/SaltedPasswordsUtility.php b/typo3/sysext/saltedpasswords/Classes/Utility/SaltedPasswordsUtility.php
index c80358cbd591af6168490963eae804401fd263e8..2b656faa041b292adbba077913ba77f2606b05a5 100644
--- a/typo3/sysext/saltedpasswords/Classes/Utility/SaltedPasswordsUtility.php
+++ b/typo3/sysext/saltedpasswords/Classes/Utility/SaltedPasswordsUtility.php
@@ -51,7 +51,7 @@ class SaltedPasswordsUtility
     {
         $currentConfiguration = self::returnExtConfDefaults();
         if (isset($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['saltedpasswords'])) {
-            $extensionConfiguration = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['saltedpasswords']);
+            $extensionConfiguration = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['saltedpasswords'], ['allowed_classes' => false]);
             // Merge default configuration with modified configuration:
             if (isset($extensionConfiguration[$mode . '.'])) {
                 $currentConfiguration = array_merge($currentConfiguration, $extensionConfiguration[$mode . '.']);
diff --git a/typo3/sysext/scheduler/Classes/Scheduler.php b/typo3/sysext/scheduler/Classes/Scheduler.php
index 925d221214471352b25bd2fa2594150045a02330..84cb1a4766178f991426346a22fb867406343b3d 100644
--- a/typo3/sysext/scheduler/Classes/Scheduler.php
+++ b/typo3/sysext/scheduler/Classes/Scheduler.php
@@ -38,7 +38,7 @@ class Scheduler implements \TYPO3\CMS\Core\SingletonInterface
     public function __construct()
     {
         // Get configuration from the extension manager
-        $this->extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['scheduler']);
+        $this->extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['scheduler'], ['allowed_classes' => false]);
         if (empty($this->extConf['maxLifetime'])) {
             $this->extConf['maxLifetime'] = 1440;
         }
diff --git a/typo3/sysext/scheduler/ext_localconf.php b/typo3/sysext/scheduler/ext_localconf.php
index 3bf20ed5e9d605c0cbec5cbf1f56efc66e6b1ce4..ab11a969a66e292266b63f0e96189c94d5c311db 100644
--- a/typo3/sysext/scheduler/ext_localconf.php
+++ b/typo3/sysext/scheduler/ext_localconf.php
@@ -10,7 +10,7 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['cliKeys']['scheduler'] = ar
     '_CLI_scheduler'
 );
 // Get the extensions's configuration
-$extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['scheduler']);
+$extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['scheduler'], ['allowed_classes' => false]);
 // If sample tasks should be shown,
 // register information for the test and sleep tasks
 if (!empty($extConf['showSampleTasks'])) {