🚨 [security] Update rexml 3.2.6 → 3.2.8 (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.2.6 → 3.2.8) · Repo · Changelog
Security Advisories 🚨
🚨 REXML contains a denial of service vulnerability
Impact
The REXML gem before 3.2.6 has a DoS vulnerability when it parses an XML that has many
<
s in an attribute value.If you need to parse untrusted XMLs, you many be impacted to this vulnerability.
Patches
The REXML gem 3.2.7 or later include the patch to fix this vulnerability.
Workarounds
Don't parse untrusted XMLs.
References
Release Notes
3.2.7
Improvements
Improve parse performance by using
StringScanner
.Improved parse performance when an attribute has many
<
s.Fixes
XPath: Fixed a bug of
normalize_space(array)
.XPath: Fixed a bug that wrong position is used with nested path.
Fixed a bug that an exception message can't be generated for
invalid encoding XML.
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 33 commits:
Add 3.2.8 entry
Remove an unused variable (#128)
Suppress a warning
ci: install only gems required for running tests (#129)
Add missing Thanks section
Bump version
Add 3.2.7 entry
Read quoted attributes in chunks (#126)
Exclude older than 2.6 on macos-14
Move development dependencies to Gemfile (#124)
Fix a problem that parse exception message can't be generated for invalid encoding XML (#123)
xpath: Fix wrong position with nested path (#122)
Change `attribute.has_key?(name)` to ` attributes[name]`. (#121)
Optimize the parse_attributes method to use `Source#match` to parse XML. (#119)
Make the test suite compatible with `--enable-frozen-string-literal` (#120)
Separate `IOSource#ensure_buffer` from `IOSource#match`. (#118)
Remove `Source#string=` method (#117)
source: Remove unnecessary string length comparisons in the case of string comparisons (#116)
Use more StringScanner based API to parse XML (#114)
test: Fix invalid XML with spaces before the XML declaration (#115)
Stop specifying the gem version of strscan in benchmarks. (#113)
Remove unnecessary checks in baseparser (#112)
xpath: Fix normalize_space(array) case (#111)
Change loop in parse_attributes to `while true`. (#109)
Reduce calls to StringScanner.new() (#108)
Use `@scanner << readline` instead of `@scanner.string = @scanner.rest + readline` (#107)
Reduce calls to `Source#buffer`(`StringScanner#rest`) (#106)
Use string scanner with baseparser (#105)
Add parse benchmark (#104)
Use reusing workflow for Ruby versions (#103)
CI: Add ruby-3.3 (#102)
build(deps): bump actions/checkout from 3 to 4 (#101)
Bump version
🆕 strscan (added, 3.1.0)
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)