diff --git a/core/modules/system/tests/src/Functional/Entity/EntityReferenceSelection/EntityReferenceSelectionAccessTest.php b/core/modules/system/tests/src/Functional/Entity/EntityReferenceSelection/EntityReferenceSelectionAccessTest.php
index 3772f3a97b..9326c349ce 100644
--- a/core/modules/system/tests/src/Functional/Entity/EntityReferenceSelection/EntityReferenceSelectionAccessTest.php
+++ b/core/modules/system/tests/src/Functional/Entity/EntityReferenceSelection/EntityReferenceSelectionAccessTest.php
@@ -348,6 +348,53 @@ public function testUserHandler() {
       ],
     ];
     $this->assertReferenceable($selection_options, $referenceable_tests, 'User handler (does not include anonymous)');
+
+    // Log in with the user without 'administer users'.
+    \Drupal::currentUser()->setAccount($users['non_admin']);
+    $selection_options['handler_settings']['include_anonymous'] = TRUE;
+    $selection_options['handler_settings']['include_blocked'] = TRUE;
+    $referenceable_tests = [
+      [
+        'arguments' => [],
+        'result' => [
+          'user' => [
+            $users['admin']->id() => $user_labels['admin'],
+            $users['non_admin']->id() => $user_labels['non_admin'],
+            $users['anonymous']->id() => $user_labels['anonymous'],
+          ],
+        ],
+      ],
+    ];
+
+    // Non admin users cannot view blocked users even if the include_blocked
+    // option is set to true.
+    $this->assertReferenceable($selection_options, $referenceable_tests, 'User handler (does not include blocked as user without administer users)');
+
+    // Users with 'administer users' permission cannot view blocked users if
+    // the 'include_blocked' selection option is FALSE.
+    \Drupal::currentUser()->setAccount($users['admin']);
+    $selection_options['handler_settings']['include_blocked'] = FALSE;
+    $this->assertReferenceable($selection_options, $referenceable_tests, 'User handler (does not include blocked as admin if include blocked is false)');
+
+    // Users with 'administer users' permission can view blocked users if
+    // the 'include_blocked' selection option is TRUE.
+    $selection_options['handler_settings']['include_blocked'] = TRUE;
+    $referenceable_tests = [
+      [
+        'arguments' => [],
+        'result' => [
+          'user' => [
+            $users['admin']->id() => $user_labels['admin'],
+            $users['non_admin']->id() => $user_labels['non_admin'],
+            $users['anonymous']->id() => $user_labels['anonymous'],
+            $users['blocked']->id() => $user_labels['blocked'],
+          ],
+        ],
+      ],
+    ];
+    $this->assertReferenceable($selection_options, $referenceable_tests, 'User handler (includes blocked as admin if include blocked is true)');
+
+
   }
 
   /**
diff --git a/core/modules/user/config/schema/user.schema.yml b/core/modules/user/config/schema/user.schema.yml
index 2f9bda44f2..0354379030 100644
--- a/core/modules/user/config/schema/user.schema.yml
+++ b/core/modules/user/config/schema/user.schema.yml
@@ -187,6 +187,9 @@ entity_reference_selection.default:user:
     include_anonymous:
       type: boolean
       label: 'Include the anonymous user in the matched entities.'
+    include_blocked:
+      type: boolean
+      label: 'Include blocked users in the matched entities.'
 
 field.formatter.settings.user_name:
   type: mapping
diff --git a/core/modules/user/src/Plugin/EntityReferenceSelection/UserSelection.php b/core/modules/user/src/Plugin/EntityReferenceSelection/UserSelection.php
index d06a81c41e..d278a75ec5 100644
--- a/core/modules/user/src/Plugin/EntityReferenceSelection/UserSelection.php
+++ b/core/modules/user/src/Plugin/EntityReferenceSelection/UserSelection.php
@@ -89,6 +89,7 @@ public function defaultConfiguration() {
         'type' => '_none',
         'role' => NULL,
       ],
+      'include_blocked' => FALSE,
       'include_anonymous' => TRUE,
     ] + parent::defaultConfiguration();
   }
@@ -105,6 +106,13 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
       '#default_value' => $configuration['include_anonymous'],
     ];
 
+    $form['include_blocked'] = [
+      '#type' => 'checkbox',
+      '#title' => $this->t('Include blocked users'),
+      '#default_value' => !empty($selection_handler_settings['include_blocked']),
+      '#description' => $this->t('If this option is not set, only users with the <em>administer users</em> permission may reference blocked users.'),
+      ];
+
     // Add user specific filter options.
     $form['filter']['type'] = [
       '#type' => 'select',
@@ -165,7 +173,7 @@ protected function buildEntityQuery($match = NULL, $match_operator = 'CONTAINS')
 
     // Adding the permission check is sadly insufficient for users: core
     // requires us to also know about the concept of 'blocked' and 'active'.
-    if (!$this->currentUser->hasPermission('administer users')) {
+    if (!($this->currentUser->hasPermission('administer users')) || !empty($handler_settings['include_blocked'])) {
       $query->condition('status', 1);
     }
     return $query;
