cascornelissen / svg-spritemap-webpack-plugin

SVG spritemap plugin for webpack
MIT License
210 stars 51 forks source link

Bump xmldom from 0.4.0 to 0.5.0 #156

Closed dependabot[bot] closed 3 years ago

dependabot[bot] commented 3 years ago

Bumps xmldom from 0.4.0 to 0.5.0.

Release notes

Sourced from xmldom's releases.

0.5.0

Fixes

  • Avoid misinterpretation of malicious XML input - GHSA-h6q6-9hqw-rwfv (CVE-2021-21366)
    • Improve error reporting; throw on duplicate attribute BREAKING CHANGE: It is currently not clear how to consistently deal with duplicate attributes, so it's also safer for our users to fail when detecting them. It's possible to configure the DOMParser.errorHandler before parsing, to handle those errors differently.

      To accomplish this and also be able to verify it in tests I needed to

      • create a new Error type ParseError and export it
      • Throw ParseError from errorHandler.fatalError and prevent those from being caught in XMLReader.
      • export DOMHandler constructor as __DOMHandler
    • Preserve quotes in DOCTYPE declaration Since the only purpose of parsing the DOCTYPE is to be able to restore it when serializing, we decided that it would be best to leave the parsed publicId and systemId as is, including any quotes. BREAKING CHANGE: If somebody relies on the actual unquoted values of those ids, they will need to take care of either single or double quotes and the right escaping. (Without this change this would not have been possible because the SAX parser already dropped the information about the quotes that have been used in the source.)

      https://www.w3.org/TR/2006/REC-xml11-20060816/#dtd https://www.w3.org/TR/2006/REC-xml11-20060816/#IDAX1KS (External Entity Declaration)

  • Fix breaking preprocessors' directives when parsing attributes [#171](https://github.com/xmldom/xmldom/issues/171)
  • fix(dom): Escape ]]> when serializing CharData [#181](https://github.com/xmldom/xmldom/issues/181)
  • Switch to (only) MIT license (drop problematic LGPL license option) [#178](https://github.com/xmldom/xmldom/issues/178)
  • Export DOMException; remove custom assertions; etc. [#174](https://github.com/xmldom/xmldom/issues/174)

Docs

Changelog

Sourced from xmldom's changelog.

0.5.0

Fixes

Docs

Commits
  • f763b00 xmldom version 0.5.0
  • d4201b9 Merge pull request from GHSA-h6q6-9hqw-rwfv
  • a4d717c Update MDN links in readme.md (#188)
  • e984b3f Update @stryker-mutator/core -> ^4.4.1 - devDependencies (#184)
  • c762161 Update stryker monorepo (major) (#140)
  • fd47c51 Fix breaking preprocessors' directives when parsing attributes (#171)
  • baa67f5 Update xmltest -> ^1.5.0 - devDependencies (#182)
  • 64c7388 fix(dom): Escape ]]> when serializing CharData (#181)
  • b73a965 Update eslint-config-prettier -> ^7.2.0 - devDependencies (#179)
  • 21bc17e Switch to (only) MIT license (#178)
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by brodybits, a new releaser for xmldom since your current version.


Dependabot compatibility score

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 rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will 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 version` will 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 dependency` will 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 labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will 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](https://github.com/cascornelissen/svg-spritemap-webpack-plugin/network/alerts).
codingjoe commented 3 years ago

@cascornelissen this is a critical security update. It blocks me (and other) from updating to a newer version of xmldom in my stack that is not vulnerable.

cascornelissen commented 3 years ago

@codingjoe, I understand your situation but unfortunately this isn't as simple as merging this PR and publishing a patch release.

The release of xmldom lists a breaking change that should be caught; it will throw when a duplicate attribute is detected. This should be caught within this plugin and transformed into a Webpack error to ensure people's builds (which possibly contain duplicate attributes) don't start crashing all of the sudden. There's some other breaking changes in there that we can't handle but are way more unlikely to happen (I think).

I'm hoping to find time to update this dependency and make the necessary changes this week.


Besides that, and this 100% depends on your situation... The actual CVE is about malicious XML input and since you're most likely the owner of the SVGs that are going through this plugin you should know whether your SVGs contain malicious XML. So unless your input SVGs are based on input from users, in theory, not a lot can go wrong. Again, depends on your specific situation.

cascornelissen commented 3 years ago

I may have misinterpreted the changelog, just tried updating to xmldom@0.5.0, updated one of the test files to contain the same attribute twice and it did not throw 🤔 Sooooo, I'm hoping we're good. Let's do a patch release and hope for the best 🤞🏼

cascornelissen commented 3 years ago

This was released in 3.9.1 🚀