Index: wp-admin/includes/plugin-install.php
===================================================================
--- wp-admin/includes/plugin-install.php	(revision 34623)
+++ wp-admin/includes/plugin-install.php	(working copy)
@@ -391,8 +391,10 @@
 		'other_notes'  => _x( 'Other Notes',  'Plugin installer section title' )
 	);
 
+	$api->sections = (array) $api->sections;
+
 	// Sanitize HTML
-	foreach ( (array) $api->sections as $section_name => $content ) {
+	foreach ( $api->sections as $section_name => $content ) {
 		$api->sections[$section_name] = wp_kses( $content, $plugins_allowedtags );
 	}
 
@@ -406,7 +408,7 @@
 
 	$section = isset( $_REQUEST['section'] ) ? wp_unslash( $_REQUEST['section'] ) : 'description'; // Default to the Description tab, Do not translate, API returns English.
 	if ( empty( $section ) || ! isset( $api->sections[ $section ] ) ) {
-		$section_titles = array_keys( (array) $api->sections );
+		$section_titles = array_keys( $api->sections );
 		$section = reset( $section_titles );
 	}
 
@@ -436,7 +438,7 @@
 	echo "<div id='{$_tab}-title' class='{$_with_banner}'><div class='vignette'></div><h2>{$api->name}</h2></div>";
 	echo "<div id='{$_tab}-tabs' class='{$_with_banner}'>\n";
 
-	foreach ( (array) $api->sections as $section_name => $content ) {
+	foreach ( $api->sections as $section_name => $content ) {
 		if ( 'reviews' === $section_name && ( empty( $api->ratings ) || 0 === array_sum( (array) $api->ratings ) ) ) {
 			continue;
 		}
@@ -546,7 +548,7 @@
 			echo '<div class="notice notice-warning"><p>' . __('<strong>Warning:</strong> This plugin has <strong>not been marked as compatible</strong> with your version of WordPress.') . '</p></div>';
 		}
 
-		foreach ( (array) $api->sections as $section_name => $content ) {
+		foreach ( $api->sections as $section_name => $content ) {
 			$content = links_add_base_url( $content, 'https://wordpress.org/plugins/' . $api->slug . '/' );
 			$content = links_add_target( $content, '_blank' );
 
