Search for vulnerabilities
Vulnerability details: VCID-t1c5-yxz4-e7ae
Vulnerability ID VCID-t1c5-yxz4-e7ae
Aliases CVE-2024-53986
GHSA-638j-pmjw-jq48
Summary rails-html-sanitizer has XSS vulnerability with certain configurations ## Summary There is a possible XSS vulnerability with certain configurations of Rails::HTML::Sanitizer 1.6.0 when used with Rails >= 7.1.0. * Versions affected: 1.6.0 * Not affected: < 1.6.0 * Fixed versions: 1.6.1 ## Impact A possible XSS vulnerability with certain configurations of Rails::HTML::Sanitizer may allow an attacker to inject content if HTML5 sanitization is enabled and the application developer has overridden the sanitizer's allowed tags in the following way: - the "math" and "style" elements are both explicitly allowed Code is only impacted if Rails is configured to use HTML5 sanitization, please see documentation for [`config.action_view.sanitizer_vendor`](https://guides.rubyonrails.org/configuring.html#config-action-view-sanitizer-vendor) and [`config.action_text.sanitizer_vendor`](https://guides.rubyonrails.org/configuring.html#config-action-text-sanitizer-vendor) for more information on these configuration options. The default configuration is to disallow these elements. Code is only impacted if allowed tags are being overridden. Applications may be doing this in a few different ways: 1. using application configuration to configure Action View sanitizers' allowed tags: ```ruby # In config/application.rb config.action_view.sanitized_allowed_tags = ["math", "style"] ``` see https://guides.rubyonrails.org/configuring.html#configuring-action-view 2. using a `:tags` option to the Action View helper `sanitize`: ``` <= sanitize @comment.body, tags: ["math", "style"]> ``` see https://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-sanitize 3. setting Rails::HTML5::SafeListSanitizer class attribute `allowed_tags`: ```ruby # class-level option Rails::HTML5::SafeListSanitizer.allowed_tags = ["math", "style"] ``` (note that this class may also be referenced as `Rails::Html::SafeListSanitizer`) 4. using a `:tags` options to the Rails::HTML5::SafeListSanitizer instance method `sanitize`: ```ruby # instance-level option Rails::HTML5::SafeListSanitizer.new.sanitize(@article.body, tags: ["math", "style"]) ``` (note that this class may also be referenced as `Rails::Html::SafeListSanitizer`) 5. setting ActionText::ContentHelper module attribute `allowed_tags`: ```ruby ActionText::ContentHelper.allowed_tags = ["math", "style"] ``` All users overriding the allowed tags by any of the above mechanisms to include both "math" and "style" should either upgrade or use one of the workarounds. ## Workarounds Any one of the following actions will work around this issue: - Remove "math" or "style" from the overridden allowed tags, - Or, downgrade sanitization to HTML4 (see documentation for [`config.action_view.sanitizer_vendor`](https://guides.rubyonrails.org/configuring.html#config-action-view-sanitizer-vendor) and [`config.action_text.sanitizer_vendor`](https://guides.rubyonrails.org/configuring.html#config-action-text-sanitizer-vendor) for more information). ## References - [CWE - CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') (4.9)](https://cwe.mitre.org/data/definitions/79.html) - Original report: https://hackerone.com/reports/2519941 ## Credit This vulnerability was responsibly reported by So Sakaguchi (mokusou).
Status Published
Exploitability 0.5
Weighted Severity 2.8
Risk 1.4
Affected and Fixed Packages Package Details
Weaknesses (3)
System Score Found at
cvssv3 3.1 https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2024-53986.json
epss 0.00043 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00043 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00043 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00043 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00043 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00043 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00043 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00043 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00054 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00054 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00054 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00054 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00068 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00068 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00068 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00068 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00075 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00075 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00075 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00075 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00075 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00075 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00075 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00082 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00082 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00082 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00082 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00082 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00082 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00082 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00082 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00096 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00113 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
epss 0.00219 https://api.first.org/data/v1/epss?cve=CVE-2024-53986
cvssv3.1_qr LOW https://github.com/advisories/GHSA-638j-pmjw-jq48
generic_textual LOW https://github.com/rails/rails-html-sanitizer
cvssv4 2.3 https://github.com/rails/rails-html-sanitizer/commit/f02ffbb8465e73920b6de0da940f5530f855965e
generic_textual LOW https://github.com/rails/rails-html-sanitizer/commit/f02ffbb8465e73920b6de0da940f5530f855965e
ssvc Track https://github.com/rails/rails-html-sanitizer/commit/f02ffbb8465e73920b6de0da940f5530f855965e
cvssv3.1_qr LOW https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-638j-pmjw-jq48
cvssv4 2.3 https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-638j-pmjw-jq48
generic_textual LOW https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-638j-pmjw-jq48
ssvc Track https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-638j-pmjw-jq48
generic_textual LOW https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rails-html-sanitizer/CVE-2024-53986.yml
generic_textual LOW https://nvd.nist.gov/vuln/detail/CVE-2024-53986
No exploits are available.
Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N Found at https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2024-53986.json
Attack Vector (AV) Attack Complexity (AC) Privileges Required (PR) User Interaction (UI) Scope (S) Confidentiality Impact (C) Integrity Impact (I) Availability Impact (A)

network

adjacent_network

local

physical

low

high

none

low

high

none

required

unchanged

changed

high

low

none

high

low

none

high

low

none

Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N Found at https://github.com/rails/rails-html-sanitizer/commit/f02ffbb8465e73920b6de0da940f5530f855965e
Attack Vector (AV) Attack Complexity (AC) Attack Requirements (AT) Privileges Required (PR) User Interaction (UI) Vulnerable System Impact Confidentiality (VC) Vulnerable System Impact Integrity (VI) Vulnerable System Impact Availability (VA) Subsequent System Impact Confidentiality (SC) Subsequent System Impact Integrity (SI) Subsequent System Impact Availability (SA)

network

adjacent

local

physical

low

high

none

present

none

low

high

none

passive

active

high

low

none

high

low

none

high

low

none

high

low

none

high

low

none

high

low

none


Vector: SSVCv2/E:N/A:N/T:P/P:M/B:A/M:M/D:T/2024-12-03T14:33:42Z/ Found at https://github.com/rails/rails-html-sanitizer/commit/f02ffbb8465e73920b6de0da940f5530f855965e
Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N Found at https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-638j-pmjw-jq48
Attack Vector (AV) Attack Complexity (AC) Attack Requirements (AT) Privileges Required (PR) User Interaction (UI) Vulnerable System Impact Confidentiality (VC) Vulnerable System Impact Integrity (VI) Vulnerable System Impact Availability (VA) Subsequent System Impact Confidentiality (SC) Subsequent System Impact Integrity (SI) Subsequent System Impact Availability (SA)

network

adjacent

local

physical

low

high

none

present

none

low

high

none

passive

active

high

low

none

high

low

none

high

low

none

high

low

none

high

low

none

high

low

none


Vector: SSVCv2/E:N/A:N/T:P/P:M/B:A/M:M/D:T/2024-12-03T14:33:42Z/ Found at https://github.com/rails/rails-html-sanitizer/security/advisories/GHSA-638j-pmjw-jq48
Exploit Prediction Scoring System (EPSS)
Percentile 0.10484
EPSS Score 0.00043
Published At Dec. 3, 2024, midnight
Date Actor Action Source VulnerableCode Version
2024-12-04T05:51:57.480273+00:00 Ruby Importer Import https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rails-html-sanitizer/CVE-2024-53986.yml 35.0.0