VDB
Sign up
MEDIUM6.1

GHSA-pg8v-g4xq-hww9

Rails::Html::Sanitizer vulnerable to Cross-site Scripting

Quick fix

GHSA-pg8v-g4xq-hww9 — rails-html-sanitizer: upgrade to the fixed version with the command below.

bundle update rails-html-sanitizer

Details

Versions of Rails::Html::Sanitizer prior to version 1.4.3 are vulnerable to XSS with certain configurations of Rails::Html::Sanitizer which allows an attacker to inject content when the application developer has overridden the sanitizer's allowed tags to allow both `select` and `style` elements. Code is only impacted if allowed tags are being overridden.

This may be done via application configuration: ```ruby# In config/application.rbconfig.action_view.sanitized_allowed_tags = ["select", "style"]```

see https://guides.rubyonrails.org/configuring.html#configuring-action-view

Or it may be done with a `:tags` option to the Action View helper `sanitize`: ```<%= sanitize @comment.body, tags: ["select", "style"] %>```

see https://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-sanitize

It may also be done with Rails::Html::SafeListSanitizer directly: ```ruby# class-level optionRails::Html::SafeListSanitizer.allowed_tags = ["select", "style"]``` or with ```ruby# instance-level optionRails::Html::SafeListSanitizer.new.sanitize(@article.body, tags: ["select", "style"])```

All users overriding the allowed tags by any of the above mechanisms to include both "select" and "style" are recommended to upgrade immediately. A workaround for this issue can be applied by removing either `select` or `style` from the overridden allowed tags.

Are you affected?

Enter the version of the package you're using.

Affected packages

RubyGems/rails-html-sanitizer
Introduced in: 0Fixed in: 1.4.3
Fixbundle update rails-html-sanitizer

References