File 0002_CVE-2022-32209.patch of Package rubygem-rails-html-sanitizer.30440
diff --git a/lib/rails/html/sanitizer.rb b/lib/rails/html/sanitizer.rb
index ffd6764..97503c8 100644
--- a/lib/rails/html/sanitizer.rb
+++ b/lib/rails/html/sanitizer.rb
@@ -141,8 +141,25 @@ def sanitize_css(style_string)
private
+ def loofah_using_html5?
+ # future-proofing, see https://github.com/flavorjones/loofah/pull/239
+ Loofah.respond_to?(:html5_mode?) && Loofah.html5_mode?
+ end
+
+ def remove_safelist_tag_combinations(tags)
+ if !loofah_using_html5? && tags.include?("select") && tags.include?("style")
+ warn("WARNING: #{self.class}: removing 'style' from safelist, should not be combined with 'select'")
+ tags.delete("style")
+ end
+ tags
+ end
+
def allowed_tags(options)
- options[:tags] || self.class.allowed_tags
+ if options[:tags]
+ remove_safelist_tag_combinations(options[:tags])
+ else
+ self.class.allowed_tags
+ end
end
def allowed_attributes(options)