From 96dcb2b13c45542ea0f85ea57dff160e5773a4fb Mon Sep 17 00:00:00 2001 From: joedolson Date: Thu, 30 Oct 2025 19:45:32 +0000 Subject: [PATCH] Media: Prevent fatal error if metadata is an array. Check the data type of ID3 data on import before running `wp_kses_post` or `wp_kses_post_deep` to fix a fatal error thrown when attempting to run `wp_kses_post` on non-string content in PHP 8.2+. Adds unit tests to verify. Props sllimrovert, ankitkumarshah, rollybueno, wpfy, hmbashar, SirLouen, johnbillion, huzaifaalmesbah, sandeepdahiya, sourabhjain, poojapadamad, joedolson. Fixes #63529. Built from https://develop.svn.wordpress.org/trunk@61098 git-svn-id: http://core.svn.wordpress.org/trunk@60434 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/media.php | 2 +- wp-includes/version.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php index 7b478f4592..66d164214f 100644 --- a/wp-admin/includes/media.php +++ b/wp-admin/includes/media.php @@ -3534,7 +3534,7 @@ function wp_add_id3_tag_data( &$metadata, $data ) { if ( ! empty( $data[ $version ]['comments'] ) ) { foreach ( $data[ $version ]['comments'] as $key => $list ) { if ( 'length' !== $key && ! empty( $list ) ) { - $metadata[ $key ] = wp_kses_post( reset( $list ) ); + $metadata[ $key ] = is_array( $list ) ? wp_kses_post_deep( reset( $list ) ) : wp_kses_post( $list ); // Fix bug in byte stream analysis. if ( 'terms_of_use' === $key && str_starts_with( $metadata[ $key ], 'yright notice.' ) ) { $metadata[ $key ] = 'Cop' . $metadata[ $key ]; diff --git a/wp-includes/version.php b/wp-includes/version.php index b62568e3b7..b487ca333b 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.9-beta2-61097'; +$wp_version = '6.9-beta2-61098'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.