Bump sanitize from 6.0.0 to 6.0.1
Bumps sanitize from 6.0.0 to 6.0.1.
Release notes
Sourced from sanitize's releases.
v6.0.1
Bug Fixes
Sanitize now always removes
<noscript>elements and their contents, even whennoscriptis in the allowlist.This fixes a sanitization bypass that could occur when
noscriptwas allowed by a custom allowlist. In this scenario, carefully crafted input could sneak arbitrary HTML through Sanitize, potentially enabling an XSS (cross-site scripting) attack.Sanitize's default configs don't allow
<noscript>elements and are not vulnerable. This issue only affects users who are using a custom config that addsnoscriptto the element allowlist.The root cause of this issue is that HTML parsing rules treat the contents of a
<noscript>element differently depending on whether scripting is enabled in the user agent. Nokogiri doesn't support scripting so it follows the "scripting disabled" rules, but a web browser with scripting enabled will follow the "scripting enabled" rules. This means that Sanitize can't reliably make the contents of a<noscript>element safe for scripting enabled browsers, so the safest thing to do is to remove the element and its contents entirely.See the following security advisory for additional details: GHSA-fw3g-2h3j-qmm7
Thanks to David Klein from TU Braunschweig (
@leeN) for reporting this issue.Fixed an edge case in which the contents of an "unescaped text" element (such as
<noembed>or<xmp>) were not properly escaped if that element was allowlisted and was also inside an allowlisted<math>or<svg>element.The only way to encounter this situation was to ignore multiple warnings in the readme and create a custom config that allowlisted all the elements involved, including
<math>or<svg>. If you're using a default config or if you heeded the warnings about MathML and SVG not being supported, you're not affected by this issue.Please let this be a reminder that Sanitize cannot safely sanitize MathML or SVG content and does not support this use case. The default configs don't allow MathML or SVG elements, and allowlisting MathML or SVG elements in a custom config may create a security vulnerability in your application.
Documentation has been updated to add more warnings and to make the existing warnings about this more prominent.
Thanks to David Klein from TU Braunschweig (
@leeN) for reporting this issue.
Changelog
Sourced from sanitize's changelog.
6.0.1 (2023-01-27)
Bug Fixes
Sanitize now always removes
<noscript>elements and their contents, even whennoscriptis in the allowlist.This fixes a sanitization bypass that could occur when
noscriptwas allowed by a custom allowlist. In this scenario, carefully crafted input could sneak arbitrary HTML through Sanitize, potentially enabling an XSS (cross-site scripting) attack.Sanitize's default configs don't allow
<noscript>elements and are not vulnerable. This issue only affects users who are using a custom config that addsnoscriptto the element allowlist.The root cause of this issue is that HTML parsing rules treat the contents of a
<noscript>element differently depending on whether scripting is enabled in the user agent. Nokogiri doesn't support scripting so it follows the "scripting disabled" rules, but a web browser with scripting enabled will follow the "scripting enabled" rules. This means that Sanitize can't reliably make the contents of a<noscript>element safe for scripting enabled browsers, so the safest thing to do is to remove the element and its contents entirely.See the following security advisory for additional details: GHSA-fw3g-2h3j-qmm7
Thanks to David Klein from TU Braunschweig (
@leeN) for reporting this issue.Fixed an edge case in which the contents of an "unescaped text" element (such as
<noembed>or<xmp>) were not properly escaped if that element was allowlisted and was also inside an allowlisted<math>or<svg>element.The only way to encounter this situation was to ignore multiple warnings in the readme and create a custom config that allowlisted all the elements involved, including
<math>or<svg>. If you're using a default config or if you heeded the warnings about MathML and SVG not being supported, you're not affected by this issue.Please let this be a reminder that Sanitize cannot safely sanitize MathML or SVG content and does not support this use case. The default configs don't allow MathML or SVG elements, and allowlisting MathML or SVG elements in a custom config may create a security vulnerability in your application.
Documentation has been updated to add more warnings and to make the existing warnings about this more prominent.
Thanks to David Klein from TU Braunschweig
... (truncated)
Commits
a92f21cRelease 6.0.17ac1dfbUpdate links784e789Remove outdated comparisonec14265Always remove\<noscript>elementsb4ee521Forcibly escape content in "unescaped text" elements inside math or svg names...94d5c22Add Ruby 3.1 to the test matrix55f766eSimplify the test matrix69b4597Use actions/checkout@v32924038Add Ruby 3.1 to the test matrixce1af49Update the online demo link- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labelswill set the current labels as the default for future PRs for this repo and language@dependabot use these reviewerswill set the current reviewers as the default for future PRs for this repo and language@dependabot use these assigneeswill set the current assignees as the default for future PRs for this repo and language@dependabot use this milestonewill set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the Security Alerts page.