diff --git a/wp-includes/blocks.php b/wp-includes/blocks.php
index e68eb36b4b..fdd9de9aff 100644
--- a/wp-includes/blocks.php
+++ b/wp-includes/blocks.php
@@ -1135,6 +1135,47 @@ function insert_hooked_blocks_and_set_ignored_hooked_blocks_metadata( &$parsed_a
 	return $markup;
 }
 
+/**
+ * Hooks into the REST API response for the core/navigation block and adds the first and last inner blocks.
+ *
+ * @since 6.6.0
+ *
+ * @param WP_REST_Response $response The response object.
+ * @param WP_Post          $post     Post object.
+ * @return WP_REST_Response The response object.
+ */
+function insert_hooked_blocks_into_rest_response( $response, $post ) {
+	if ( ! isset( $response->data['content']['raw'] ) || ! isset( $response->data['content']['rendered'] ) ) {
+		return $response;
+	}
+
+	$attributes = array();
+	$ignored_hooked_blocks = get_post_meta( $post->ID, '_wp_ignored_hooked_blocks', true );
+	if ( ! empty( $ignored_hooked_blocks ) ) {
+		$ignored_hooked_blocks  = json_decode( $ignored_hooked_blocks, true );
+		$attributes['metadata'] = array(
+			'ignoredHookedBlocks' => $ignored_hooked_blocks,
+		);
+	}
+	$content = get_comment_delimited_block_content(
+		'core/navigation',
+		$attributes,
+		$response->data['content']['raw']
+	);
+
+	$content = apply_block_hooks_to_content( $content, $post );
+
+	// Remove mock Navigation block wrapper.
+	$content = remove_serialized_parent_block( $content );
+
+	$response->data['content']['raw'] = $content;
+
+	/** This filter is documented in wp-includes/post-template.php */
+	$response->data['content']['rendered'] = apply_filters( 'the_content', $content );
+
+	return $response;
+}
+
 /**
  * Returns a function that injects the theme attribute into, and hooked blocks before, a given block.
  *
diff --git a/wp-includes/default-filters.php b/wp-includes/default-filters.php
index f0f1df4f74..b653d3a9af 100644
--- a/wp-includes/default-filters.php
+++ b/wp-includes/default-filters.php
@@ -760,4 +760,7 @@ add_filter( 'rest_pre_insert_wp_template_part', 'inject_ignored_hooked_blocks_me
 // Update ignoredHookedBlocks postmeta for wp_navigation post type.
 add_filter( 'rest_pre_insert_wp_navigation', 'update_ignored_hooked_blocks_postmeta' );
 
+// Inject hooked blocks into the wp_navigation post type REST response.
+add_filter( 'rest_prepare_wp_navigation', 'insert_hooked_blocks_into_rest_response', 10, 2 );
+
 unset( $filter, $action );
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 3bf39b1e06..3ade8f33e9 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '6.6-alpha-58291';
+$wp_version = '6.6-alpha-58292';
 
 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.