Index: src/wp-includes/ms-default-filters.php
===================================================================
--- src/wp-includes/ms-default-filters.php	(revision 40296)
+++ src/wp-includes/ms-default-filters.php	(working copy)
@@ -33,6 +33,7 @@
 add_filter( 'sanitize_user', 'strtolower' );
 
 // Blogs
+add_filter( 'wpmu_validate_blog_signup', 'signup_check_minimum_length' );
 add_filter( 'wpmu_validate_blog_signup', 'signup_nonce_check' );
 add_action( 'wpmu_new_blog', 'wpmu_log_new_registrations', 10, 2 );
 add_action( 'wpmu_new_blog', 'newblog_notify_siteadmin', 10, 2 );
Index: src/wp-includes/ms-functions.php
===================================================================
--- src/wp-includes/ms-functions.php	(revision 40296)
+++ src/wp-includes/ms-functions.php	(working copy)
@@ -1999,6 +1999,22 @@
 }
 
 /**
+ * Checks a signup blogname for its length.
+ *
+ * @since 4.8.0
+ *
+ * @param array $result Array of domain, path, blog name, blog title, user and error messages.
+ * @return array Possibly modified array with an additional error.
+ */
+function signup_check_minimum_length( $result ) {
+	if ( strlen( $result['blogname'] ) < 4 ) {
+		$result['errors']->add( 'blogname', __( 'Site name must be at least 4 characters.' ) );
+	}
+
+	return $result;
+}
+
+/**
  * Correct 404 redirects when NOBLOGREDIRECT is defined.
  *
  * @since MU
