diff --git a/core/core.services.yml b/core/core.services.yml
index cc45b91323434bf49b817f5818ca88fbaa23cdae..8b9d1119c30006e599b5b086aede0ce4f207c456 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -1703,7 +1703,7 @@ services:
   Drupal\Core\Asset\LibraryDependencyResolverInterface: '@library.dependency_resolver'
   asset.resolver:
     class: Drupal\Core\Asset\AssetResolver
-    arguments: ['@library.discovery', '@library.dependency_resolver', '@module_handler', '@theme.manager', '@language_manager', '@cache.data']
+    arguments: ['@library.discovery', '@library.dependency_resolver', '@module_handler', '@theme.manager', '@language_manager', '@cache.data', '@theme_handler']
   Drupal\Core\Asset\AssetResolverInterface: '@asset.resolver'
   info_parser:
     class: Drupal\Core\Extension\InfoParser
diff --git a/core/lib/Drupal/Core/Asset/AssetResolver.php b/core/lib/Drupal/Core/Asset/AssetResolver.php
index fcd294a649714d4ed7fc191060ce044bf266eb01..4d42f4235984e499e92a765f4cf8301415c69cad 100644
--- a/core/lib/Drupal/Core/Asset/AssetResolver.php
+++ b/core/lib/Drupal/Core/Asset/AssetResolver.php
@@ -7,6 +7,7 @@
 use Drupal\Component\Utility\UrlHelper;
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\Extension\ThemeHandlerInterface;
 use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Language\LanguageInterface;
 use Drupal\Core\Theme\ThemeManagerInterface;
@@ -58,6 +59,13 @@ class AssetResolver implements AssetResolverInterface {
    */
   protected $cache;
 
+  /**
+   * The theme handler service.
+   *
+   * @var \Drupal\Core\Extension\ThemeHandlerInterface
+   */
+  protected $themeHandler;
+
   /**
    * Constructs a new AssetResolver instance.
    *
@@ -73,14 +81,22 @@ class AssetResolver implements AssetResolverInterface {
    *   The language manager.
    * @param \Drupal\Core\Cache\CacheBackendInterface $cache
    *   The cache backend.
+   * @param \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler
+   *   The theme handler service.
    */
-  public function __construct(LibraryDiscoveryInterface $library_discovery, LibraryDependencyResolverInterface $library_dependency_resolver, ModuleHandlerInterface $module_handler, ThemeManagerInterface $theme_manager, LanguageManagerInterface $language_manager, CacheBackendInterface $cache) {
+  public function __construct(LibraryDiscoveryInterface $library_discovery, LibraryDependencyResolverInterface $library_dependency_resolver, ModuleHandlerInterface $module_handler, ThemeManagerInterface $theme_manager, LanguageManagerInterface $language_manager, CacheBackendInterface $cache, ?ThemeHandlerInterface $theme_handler = NULL) {
+    if ($theme_handler === NULL) {
+      @trigger_error('Calling ' . __METHOD__ . ' without the $theme_handler argument is deprecated in drupal:11.1.0 and it will be required in drupal:12.0.0. See https://www.drupal.org/project/drupal/issues/3451667', E_USER_DEPRECATED);
+      $theme_handler = \Drupal::service('theme_handler');
+    }
+
     $this->libraryDiscovery = $library_discovery;
     $this->libraryDependencyResolver = $library_dependency_resolver;
     $this->moduleHandler = $module_handler;
     $this->themeManager = $theme_manager;
     $this->languageManager = $language_manager;
     $this->cache = $cache;
+    $this->themeHandler = $theme_handler;
   }
 
   /**
@@ -140,10 +156,14 @@ public function getCssAssets(AttachedAssetsInterface $assets, $optimize, ?Langua
     if (!isset($language)) {
       $language = $this->languageManager->getCurrentLanguage();
     }
-    $theme_info = $this->themeManager->getActiveTheme();
-    // Add the theme name to the cache key since themes may implement
-    // hook_library_info_alter().
-    $cid = 'css:' . $theme_info->getName() . ':' . $language->getId() . Crypt::hashBase64(serialize($libraries_to_load)) . (int) $optimize;
+    // Add the active theme name to the cache key since active themes may
+    // implement hook_library_info_alter().
+    $active_theme = $this->themeManager->getActiveTheme()->getName();
+    // Add the default theme name to the cache key since css generated for an
+    // active admin theme may include the default theme's ckeditor5-stylesheets
+    // and default themes may be set conditionally and dynamically.
+    $default_theme = $this->themeHandler->getDefault();
+    $cid = 'css:' . $active_theme . ':' . $default_theme . ':' . $language->getId() . Crypt::hashBase64(serialize($libraries_to_load)) . (int) $optimize;
     if ($cached = $this->cache->get($cid)) {
       return $cached->data;
     }
diff --git a/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php b/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php
index d5e2190439a5242daa8a1e3fc55b01468b087908..4c5b49287d5966515690a07303d6f225148f59cd 100644
--- a/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/AssetResolverTest.php
@@ -67,6 +67,13 @@ class AssetResolverTest extends UnitTestCase {
    */
   protected $cache;
 
+  /**
+   * The mocked theme handler.
+   *
+   * @var \Drupal\Core\Extension\ThemeHandlerInterface|\PHPUnit\Framework\MockObject\MockObject
+   */
+  protected $themeHandler;
+
   /**
    * A mocked English language object.
    */
@@ -161,7 +168,9 @@ protected function setUp(): void {
       ->willReturn($english, $english, $japanese, $japanese);
     $this->cache = new TestMemoryBackend(new Time());
 
-    $this->assetResolver = new AssetResolver($this->libraryDiscovery, $this->libraryDependencyResolver, $this->moduleHandler, $this->themeManager, $this->languageManager, $this->cache);
+    $this->themeHandler = $this->createMock('\Drupal\Core\Extension\ThemeHandlerInterface');
+
+    $this->assetResolver = new AssetResolver($this->libraryDiscovery, $this->libraryDependencyResolver, $this->moduleHandler, $this->themeManager, $this->languageManager, $this->cache, $this->themeHandler);
   }
 
   /**