[wp-trac] [WordPress Trac] #54800: Nonce creation causes DB access errors when initializing multisite networks

WordPress Trac noreply at wordpress.org
Wed Jan 12 14:46:32 UTC 2022

#54800: Nonce creation causes DB access errors when initializing multisite networks
 Reporter:  schlessera     |      Owner:  (none)
     Type:  defect (bug)   |     Status:  new
 Priority:  high           |  Milestone:  5.9
Component:  Script Loader  |    Version:  trunk
 Severity:  major          |   Keywords:
  Focuses:                 |
 The default script assets to be enqueued via the script loader use nonces
 for the assets that integrate with the WP REST API.

 The nonce creation through `wp_create_nonce()` fails with a database error
 when it is called on a site that has not fully been initialized yet, as
 the table where the nonce is supposed to be stored does not yet exist.

 WordPress database error Table 'wp_cli_test.wp_sitemeta' doesn't exist for
 query SELECT meta_value FROM
 wp_sitemeta WHERE meta_key = 'nonce_key' AND site_id = 1 made by
 WP_CLI\bootstrap, WP_CLI\Bootstrap\LaunchRunner->process,
 WP_CLI\Runner->start, WP_CLI\Runner->load_wordpress,
 require('wp-settings.php'), do_action('init'), WP_Hook->do_action,
 register_block_core_file, register_block_type_from_metadata,
 register_block_script_handle, wp_register_script,
 wp_scripts, WP_Scripts->__construct, WP_Scripts->init,
 WP_Hook->do_action, WP_Hook->apply_filters, wp_default_scripts,
 wp_create_nonce, wp_hash, wp_salt,
 get_site_option, get_network_option

 There is already some safeguarding in place around these nonces, but it is
 not enough, as it specifically excludes the case of a multisite setup.

 The `! is_multisite()` condition should be removed from these safeguards
 to ensure the error does never surface.

 This is a follow-up ticket to #54634.

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

More information about the wp-trac mailing list