[wp-trac] [WordPress Trac] #53830: Default filters try to create nonce during installation before options table exists

WordPress Trac noreply at wordpress.org
Thu Jul 29 16:45:31 UTC 2021


#53830: Default filters try to create nonce during installation before options
table exists
-----------------------------+-----------------------------
 Reporter:  schlessera       |      Owner:  (none)
     Type:  defect (bug)     |     Status:  new
 Priority:  normal           |  Milestone:  Awaiting Review
Component:  Upgrade/Install  |    Version:  5.7
 Severity:  normal           |   Keywords:
  Focuses:                   |
-----------------------------+-----------------------------
 Similar to https://core.trac.wordpress.org/ticket/39047, there's a new
 instance where a default filter tries to use `wp_create_nonce()` during WP
 installation, which throws an error as the `wp_options` table does not yet
 exist.

 The filter is adding the default scripts on `'init'`, and the offending
 code is found in `wp-includes/script-loader.php`:

 {{{#!php
 <?php
 $user_id = isset( $_GET['user_id'] ) ? (int) $_GET['user_id'] : 0;
 did_action( 'init' ) && $scripts->localize(
         'user-profile',
         'userProfileL10n',
         array(
                 'user_id' => $user_id,
                 'nonce'   => wp_create_nonce( 'reset-password-for-' .
 $user_id ),
         )
 );
 }}}

 It was introduced via https://core.trac.wordpress.org/changeset/50129.

 As suggested by @swissspidy, the `wp_create_nonce()` call should be
 wrapped like the following:
 {{{#!php
 <?php
 ( wp_installing() && ! is_multisite() ) ? '' : wp_create_nonce(..)
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/53830>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list