diff --git a/changelog.d/11900.misc b/changelog.d/11900.misc
new file mode 100644
index 0000000000000000000000000000000000000000..edd2852fd49f26c4519f03ef67539f2bf024f1fc
--- /dev/null
+++ b/changelog.d/11900.misc
@@ -0,0 +1 @@
+Remove unnecessary condition on knock->leave auth rule check.
\ No newline at end of file
diff --git a/synapse/event_auth.py b/synapse/event_auth.py
index eca00bc97506c60e365d55363e5800266f208fe0..621a3efcccec0888e35cb0766c1798a9dadb4d25 100644
--- a/synapse/event_auth.py
+++ b/synapse/event_auth.py
@@ -374,9 +374,9 @@ def _is_membership_change_allowed(
         return
 
     # Require the user to be in the room for membership changes other than join/knock.
-    if Membership.JOIN != membership and (
-        RoomVersion.msc2403_knocking and Membership.KNOCK != membership
-    ):
+    # Note that the room version check for knocking is done implicitly by `caller_knocked`
+    # and the ability to set a membership of `knock` in the first place.
+    if Membership.JOIN != membership and Membership.KNOCK != membership:
         # If the user has been invited or has knocked, they are allowed to change their
         # membership event to leave
         if (