diff --git a/wp-includes/html-api/class-wp-html-tag-processor.php b/wp-includes/html-api/class-wp-html-tag-processor.php
index 5ba8aebc03..ec9e2c4391 100644
--- a/wp-includes/html-api/class-wp-html-tag-processor.php
+++ b/wp-includes/html-api/class-wp-html-tag-processor.php
@@ -2972,8 +2972,16 @@ class WP_HTML_Tag_Processor {
if ( true === $value ) {
$updated_attribute = $name;
} else {
+ $tag_name = $this->get_tag();
+ $comparable_name = strtolower( $name );
+
+ /*
+ * Escape URL attributes.
+ *
+ * @see https://html.spec.whatwg.org/#attributes-3
+ */
$escaped_new_value = esc_attr( $value );
- $updated_attribute = "{$name}=\"{$escaped_new_value}\"";
+ $updated_attribute = wp_kses_one_attr( "{$comparable_name}=\"{$escaped_new_value}\"", $tag_name );
}
/*
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 4d58f5da4f..46455a91d6 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
-$wp_version = '6.6-beta3-58471';
+$wp_version = '6.6-beta3-58472';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.