diff --git a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php
index 04da0f588c..2298333f26 100644
--- a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php
+++ b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php
@@ -769,6 +769,13 @@ public function buildConfirmForm(array $form, FormStateInterface $form_state) {
     // Fetch the system data at the first opportunity.
     $system_data = $form_state->get('system_data');
 
+    // Remove core profiles from the sytem data.
+    foreach (system_get_info('module') as $name => $info) {
+      if ($info['type'] === 'profile') {
+        unset($system_data['module'][$name]);
+      }
+    }
+
     // Add source_module and destination_module for modules that do not need an
     // upgrade path and are enabled on the source site.
     foreach ($this->noUpgradePaths[$version] as $extension) {
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
index 8496b115dd..b925460bd2 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
@@ -30,6 +30,24 @@
    */
   protected $sourceDatabase;
 
+  /**
+   * A list of install profiles to test are not displayed.
+   *
+   * To prevent install profiles from appearing in either the list of modules
+   * to be upgraded or the list of modules that will not be upgraded, the
+   * install profiles on the destination are explicitly removed. This list
+   * specifies the install profiles to test that they are not displayed.
+   *
+   * @var array
+   *
+   * @see \Drupal\migrate_drupal_ui\Form\MigrateUpgradeForm
+   */
+  protected $installProfiles = [
+    'minimal',
+    'standard',
+    'testing',
+  ];
+
   /**
    * {@inheritdoc}
    */
@@ -129,6 +147,13 @@ protected function translatePostValues(array $values) {
    *   An array of modules that will not be upgraded.
    */
   protected function assertUpgradePaths(WebAssert $session, array $available_paths, array $missing_paths) {
+    // Test that install profiles are not in the available or missing update
+    // path lists.
+    foreach ($this->installProfiles as $profile) {
+      $this->assertNotContains($profile, $available_paths);
+      $this->assertNotContains($profile, $missing_paths);
+    }
+
     // Test the available migration paths.
     foreach ($available_paths as $available) {
       $session->elementExists('xpath', "//span[contains(@class, 'checked') and text() = '$available']");
