diff --git a/core/lib/Drupal/Component/Utility/Xss.php b/core/lib/Drupal/Component/Utility/Xss.php index 9081fae..4c6e812 100644 --- a/core/lib/Drupal/Component/Utility/Xss.php +++ b/core/lib/Drupal/Component/Utility/Xss.php @@ -79,6 +79,10 @@ public static function filter($string, $html_tags = array('a', 'em', 'strong', ' $splitter = function ($matches) use ($html_tags, $class) { return $class::split($matches[1], $html_tags, $class); }; + // Strip any tags that are not in the whitelist, then mark the text as safe + // for output. All other known XSS vectors have been filtered out by this + // point and any HTML tags remaining will have been deliberately allowed, so + // it is acceptable to call SafeMarkup::set() on the resultant string. return SafeMarkup::set(preg_replace_callback('% ( <(?=[^a-zA-Z!/]) # a lone <