From e810b32f428cef07711e401b1900a28d410f8fd4 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Sat, 17 Aug 2019 13:58:12 +0000 Subject: [PATCH] Pings/Trackbacks: In `wp_xmlrpc_server::pingback_ping()`, strip inline JS and CSS while trying to figure out the pingback context. Props david.binda. Fixes #47283. git-svn-id: https://develop.svn.wordpress.org/trunk@45823 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/class-wp-xmlrpc-server.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/class-wp-xmlrpc-server.php b/src/wp-includes/class-wp-xmlrpc-server.php index a8fad5fdbf..260c6f86dc 100644 --- a/src/wp-includes/class-wp-xmlrpc-server.php +++ b/src/wp-includes/class-wp-xmlrpc-server.php @@ -6880,7 +6880,10 @@ class wp_xmlrpc_server extends IXR_Server { return $this->pingback_error( 32, __( 'We cannot find a title on that page.' ) ); } - $remote_source = strip_tags( $remote_source, '' ); // just keep the tag we need + // Remove all script and style tags including their content. + $remote_source = preg_replace( '@<(script|style)[^>]*?>.*?@si', '', $remote_source ); + // Just keep the tag we need. + $remote_source = strip_tags( $remote_source, '' ); $p = explode( "\n\n", $remote_source );