Require numeric IDs in user deletion functions.

`wp_delete_user()` and `wpmu_delete_user()` both require an `$id` parameter.
Previously, the functions did not verify that the value passed was, in fact,
a number. As such, passing an object or any other entity that would be cast
to int `1` would result in user 1 being deleted. We fix this by enforcing
the requirement that `$id` be numeric.

Props dipesh.kakadiya, utkarshpatel, juliobox.
Fixes #33800.
Built from https://develop.svn.wordpress.org/trunk@34034


git-svn-id: http://core.svn.wordpress.org/trunk@34002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Boone Gorges 2015-09-11 02:25:23 +00:00
parent 9a8a28998d
commit 39fb7992a9
3 changed files with 9 additions and 1 deletions

View File

@ -185,6 +185,10 @@ function wpmu_delete_blog( $blog_id, $drop = false ) {
function wpmu_delete_user( $id ) {
global $wpdb;
if ( ! is_numeric( $id ) ) {
return false;
}
$id = (int) $id;
$user = new WP_User( $id );

View File

@ -273,6 +273,10 @@ function get_users_drafts( $user_id ) {
function wp_delete_user( $id, $reassign = null ) {
global $wpdb;
if ( ! is_numeric( $id ) ) {
return false;
}
$id = (int) $id;
$user = new WP_User( $id );

View File

@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.4-alpha-34033';
$wp_version = '4.4-alpha-34034';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.