Multisite: Use `hash_equals()` when comparing hashes to mitigate timing attacks.
Fixes #37324. Built from https://develop.svn.wordpress.org/trunk@38032 git-svn-id: http://core.svn.wordpress.org/trunk@37973 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
02424959e4
commit
f8e7680cd6
|
@ -16,7 +16,7 @@ if ( ! current_user_can( 'delete_site' ) )
|
||||||
wp_die(__( 'Sorry, you are not allowed to delete this site.'));
|
wp_die(__( 'Sorry, you are not allowed to delete this site.'));
|
||||||
|
|
||||||
if ( isset( $_GET['h'] ) && $_GET['h'] != '' && get_option( 'delete_blog_hash' ) != false ) {
|
if ( isset( $_GET['h'] ) && $_GET['h'] != '' && get_option( 'delete_blog_hash' ) != false ) {
|
||||||
if ( get_option( 'delete_blog_hash' ) == $_GET['h'] ) {
|
if ( hash_equals( get_option( 'delete_blog_hash' ), $_GET['h'] ) ) {
|
||||||
wpmu_delete_blog( $wpdb->blogid );
|
wpmu_delete_blog( $wpdb->blogid );
|
||||||
wp_die( sprintf( __( 'Thank you for using %s, your site has been deleted. Happy trails to you until we meet again.' ), $current_site->site_name ) );
|
wp_die( sprintf( __( 'Thank you for using %s, your site has been deleted. Happy trails to you until we meet again.' ), $current_site->site_name ) );
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -57,7 +57,7 @@ if ( is_multisite() ) {
|
||||||
if ( ! empty($_GET[ 'adminhash' ] ) ) {
|
if ( ! empty($_GET[ 'adminhash' ] ) ) {
|
||||||
$new_admin_details = get_option( 'adminhash' );
|
$new_admin_details = get_option( 'adminhash' );
|
||||||
$redirect = 'options-general.php?updated=false';
|
$redirect = 'options-general.php?updated=false';
|
||||||
if ( is_array( $new_admin_details ) && $new_admin_details[ 'hash' ] == $_GET[ 'adminhash' ] && !empty($new_admin_details[ 'newemail' ]) ) {
|
if ( is_array( $new_admin_details ) && hash_equals( $new_admin_details[ 'hash' ], $_GET[ 'adminhash' ] ) && !empty($new_admin_details[ 'newemail' ]) ) {
|
||||||
update_option( 'admin_email', $new_admin_details[ 'newemail' ] );
|
update_option( 'admin_email', $new_admin_details[ 'newemail' ] );
|
||||||
delete_option( 'adminhash' );
|
delete_option( 'adminhash' );
|
||||||
delete_option( 'new_admin_email' );
|
delete_option( 'new_admin_email' );
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '4.6-beta2-38031';
|
$wp_version = '4.6-beta2-38032';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
Loading…
Reference in New Issue