🚨 [security] Update rexml 3.3.1 → 3.3.2 (patch)
This dependency update fixes known security vulnerabilities. Please see the details below and assess their impact carefully. We recommend to merge and deploy this as soon as possible!
Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.
What changed?
↗ ️ rexml (indirect, 3.3.1 → 3.3.2) · Repo · Changelog
Security Advisories 🚨
🚨 REXML denial of service vulnerability
Impact
The REXML gem before 3.3.1 has some DoS vulnerabilities when it parses an XML that has many specific characters such as
<
,0
and%>
.If you need to parse untrusted XMLs, you may be impacted to these vulnerabilities.
Patches
The REXML gem 3.3.2 or later include the patches to fix these vulnerabilities.
Workarounds
Don't parse untrusted XMLs.
References
- GHSA-vg3r-rm7w-2xgh : This is a similar vulnerability
- https://www.ruby-lang.org/en/news/2024/07/16/dos-rexml-cve-2024-39908/
Release Notes
3.3.2
Improvements
Improved parse performance.
- GH-160
- Patch by NAITOH Jun.
Improved parse performance.
Added support for raising a parse exception when an XML has extra
content after the root element.
- GH-161
- Patch by NAITOH Jun.
Added support for raising a parse exception when an XML
declaration exists in wrong position.
- GH-162
- Patch by NAITOH Jun.
Removed needless a space after XML declaration in pretty print mode.
- GH-164
- Patch by NAITOH Jun.
Stopped to emit
:text
event after the root element.
- GH-167
- Patch by NAITOH Jun.
Fixes
- Fixed a bug that SAX2 parser doesn't expand predefined entities for
characters
callback.
- GH-168
- Patch by NAITOH Jun.
Thanks
NAITOH Jun
Watson
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 27 commits:
Add 3.3.2 entry
test: improve linear performance test names
Fix performance issue caused by using repeated `>` characters inside `<xml><!-- --></xml>` (#177)
Fix ReDoS by using repeated space characters inside `<!DOCTYPE name [<!ATTLIST>]>` (#176)
Suppress have_root not initialized warnings on Ruby < 3
Fix performance issue caused by using repeated `>` characters inside `<!DOCTYPE name [<!ENTITY>]>` (#175)
Fix performance issue caused by using repeated `>` characters inside `<!DOCTYPE root [<!-- PAYLOAD -->]>` (#174)
Fix performance issue caused by using repeated `>` characters after ` <!DOCTYPE name` (#173)
Fix performance issue caused by using repeated `>` characters inside `CDATA [ PAYLOAD ]` (#172)
Fix performance issue caused by using repeated `>` characters inside comments (#171)
Fix ReDoS caused by very large character references using repeated 0s (#169)
Fix performance issue caused by using repeated `>` characters inside `<?xml` (#170)
Fix a bug that SAX2 parser doesn't expand the predefined entities for "characters" (#168)
Do not output :text event after the root tag is closed (#167)
test Text.check: add entity reference with new line case
test Text.check: add a space at the start in character reference cases
test Text.check: use "why" for test name
test Text.check: add garbage at the end in character reference cases
test Text.check: add empty reference case
Fix test for Text.check (#166)
Add tests for REXML::Text.check (#165)
Stop adding extra new line after XML declaration with pretty format (#164)
test: move an attribute value test to parse/test_element.rb
Add position check for XML declaration (#162)
fix: Extra content at the end of the document (#161)
Optimize BaseParser#unnormalize method to replace "\r\n" with "\n" only when "\r\n" is included (#160)
Bump version
Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase
.
All Depfu comment commands
- @depfu rebase
- Rebases against your default branch and redoes this update
- @depfu recreate
- Recreates this PR, overwriting any edits that you've made to it
- @depfu merge
- Merges this PR once your tests are passing and conflicts are resolved
- @depfu cancel merge
- Cancels automatic merging of this PR
- @depfu close
- Closes this PR and deletes the branch
- @depfu reopen
- Restores the branch and reopens this PR (if it's closed)
- @depfu pause
- Ignores all future updates for this dependency and closes this PR
- @depfu pause [minor|major]
- Ignores all future minor/major updates for this dependency and closes this PR
- @depfu resume
- Future versions of this dependency will create PRs again (leaves this PR as is)