diff --git a/composer/Composer.php b/composer/Composer.php
index 8b8de87b95d27fa1d6b8b8dc9aa67fac3475dcef..0c27fac84c86861394fa5848d13dd37ad20207ba 100644
--- a/composer/Composer.php
+++ b/composer/Composer.php
@@ -91,8 +91,8 @@ protected static function setTemplateProjectStability(string $root, string $vers
   public static function ensureComposerVersion(): void {
     $composerVersion = method_exists(ComposerApp::class, 'getVersion') ?
       ComposerApp::getVersion() : ComposerApp::VERSION;
-    if (Comparator::lessThan($composerVersion, '2.0.0')) {
-      throw new \RuntimeException("Drupal core development requires Composer 2.0.0, but Composer $composerVersion is installed. Please run 'composer self-update'.");
+    if (Comparator::lessThan($composerVersion, '2.3.5')) {
+      throw new \RuntimeException("Drupal core development requires Composer 2.3.5, but Composer $composerVersion is installed. Please run 'composer self-update'.");
     }
   }
 
diff --git a/core/tests/Drupal/Tests/Composer/ComposerTest.php b/core/tests/Drupal/Tests/Composer/ComposerTest.php
index 9854c14efd21203d7c7a79e1d2d1011d6fe5b7fb..e577945ab3b8fb3dfd99ca6f0d589befba4e6438 100644
--- a/core/tests/Drupal/Tests/Composer/ComposerTest.php
+++ b/core/tests/Drupal/Tests/Composer/ComposerTest.php
@@ -21,7 +21,7 @@ public function testEnsureComposerVersion() {
       $this->assertNull(Composer::ensureComposerVersion());
     }
     catch (\RuntimeException $e) {
-      $this->assertMatchesRegularExpression('/Drupal core development requires Composer 2.0.0, but Composer /', $e->getMessage());
+      $this->assertMatchesRegularExpression('/Drupal core development requires Composer 2.3.5, but Composer /', $e->getMessage());
     }
   }