diff --git a/wp-admin/includes/update.php b/wp-admin/includes/update.php
index d4c1dd6a07..58595ecea6 100644
--- a/wp-admin/includes/update.php
+++ b/wp-admin/includes/update.php
@@ -841,10 +841,20 @@ function wp_recovery_mode_nag() {
 		return;
 	}
 
+	$url = wp_login_url();
+	$url = add_query_arg( 'action', WP_Recovery_Mode::EXIT_ACTION, $url );
+	$url = wp_nonce_url( $url, WP_Recovery_Mode::EXIT_ACTION );
+
 	?>
 	<div class="notice notice-info">
 		<p>
-			<?php esc_html_e( 'You are in recovery mode. This means there may be an error with a theme or plugin. To exit recovery mode, log out or use the Exit button.' ); ?>
+			<?php
+			/* translators: %s: Recovery Mode exit link */
+			printf(
+				__( 'You are in recovery mode. This means there may be an error with a theme or plugin. To exit recovery mode, log out or use the Exit button. <a href="%s">Exit Recovery Mode</a>' ),
+				esc_url( $url )
+			);
+			?>
 		</p>
 	</div>
 	<?php
