🚨 Your current dependencies have known security vulnerabilities 🚨
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.
There is a vulnerability in ActiveSupport if the new bytesplice method is called on a SafeBuffer with untrusted user input.
This vulnerability has been assigned the CVE identifier CVE-2023-28120.
Versions Affected: All. Not affected: None Fixed Versions: 7.0.4.3, 6.1.7.3
Impact
ActiveSupport uses the SafeBuffer string subclass to tag strings as html_safe after they have been sanitized.
When these strings are mutated, the tag is should be removed to mark them as no longer being html_safe.
Ruby 3.2 introduced a new bytesplice method which ActiveSupport did not yet understand to be a mutation.
Users on older versions of Ruby are likely unaffected.
All users running an affected release and using bytesplice should either upgrade or use one of the workarounds immediately.
Workarounds
Avoid calling bytesplice on a SafeBuffer (html_safe) string with untrusted user input.
Calling NodeSet#to_html on an empty node set no longer raises an encoding-related exception. This bug was introduced in v1.14.0 while fixing #2649. [#2784]
There is a denial of service vulnerability in the header parsing component of Rack. This vulnerability has been assigned the CVE identifier CVE-2023-27539.
Carefully crafted input can cause header parsing in Rack to take an unexpected amount of time, possibly resulting in a denial of service attack vector. Any applications that parse headers using Rack (virtually all Rails applications) are impacted.
Workarounds
Setting Regexp.timeout in Ruby 3.2 is a possible workaround.
There is a possible DoS vulnerability in the Multipart MIME parsing code in Rack. This vulnerability has been assigned the CVE identifier CVE-2023-27530.
Versions Affected: All. Not affected: None Fixed Versions: 3.0.4.2, 2.2.6.3, 2.1.4.3, 2.0.9.3
Impact
The Multipart MIME parsing code in Rack limits the number of file parts, but does not limit the total number of parts that can be uploaded. Carefully crafted requests can abuse this and cause multipart parsing to take longer than expected.
All users running an affected release should either upgrade or use one of the workarounds immediately.
Workarounds
A proxy can be configured to limit the POST body size which will mitigate this issue.
If an autoload is triggered, the file is loaded successfully, but the expected
constant does not get defined, Ruby resets the state of the module. In
particular, autoload? returns nil for that constant name, and constants
does not include the constant name (starting with Ruby 3.1).
Zeitwerk is more strict, not defining the expected constant is an error
condition and the loader raises Zeitwerk::NameError. But this happens during
the require call and the exception prevents Ruby from doing that cleanup.
With this change, the parent module is left in a state that makes more sense
and is consistent with what Ruby does.
A message is logged if an autoload did not define the expected constant.
When that happens, Zeitwerk::NameError is raised and you normally see the
exception. But if the error is shallowed, and you are inspecting the logs to
investigate something, this new message may be helpful.
By default, Zeitwerk::Loader#dirs filters ignored root directories out.
Please, pass ignored: true if you want them included.
It is very strange to configure a root directory and also ignore it, the edge
case is supported only for completeness. However, in that case, client code
listing root directories rarely needs the ignored ones.
Documentation improvements.
Enforcement of private interfaces continues with another gradual patch.
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 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)
🚨 Your current dependencies have known security vulnerabilities 🚨
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?
✳️ rails (6.1.7.2 → 6.1.7.3) · Repo
Release Notes
6.1.7.3
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ actioncable (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ actionmailbox (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
↗️ actionmailer (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ actionpack (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ actiontext (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ actionview (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ activejob (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ activemodel (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ activerecord (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ activestorage (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ activesupport (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Security Advisories 🚨
🚨 Possible XSS Security Vulnerability in SafeBuffer#bytesplice
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ concurrent-ruby (indirect, 1.2.0 → 1.2.2) · Repo · Changelog
Release Notes
1.2.2
1.2.1
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 16 commits:
Fix Concurrent::Map default_proc arguments
Prepare CHANGELOG for next version
1.2.1
Run isolated specs on the oldest CRuby too
Add CHANGELOG for https://github.com/ruby-concurrency/concurrent-ruby/pull/990
Revert "Prefer `Process.pid` over `$$`"
Add `require 'fiber'` for `Fiber.current` usage.
Prefer `Process.pid` over `$$`
Optimize Concurrent::Map#[] on CRuby by letting the backing Hash handle the default_proc
Modernize Concurrent::Map benchmark
Need `bundle install` before generating master docs
Make it easier to publish only edge
Bump version of edge too since there were changes
Give more time to join threads
Guard flaky assertion on JRuby
Fix docs generation for 1.2.0
↗️ mail (indirect, 2.8.0.1 → 2.8.1) · Repo · Changelog
Commits
See the full diff on Github. The new version differs by 13 commits:
Release v2.8.1
Release 2.8.1.rc2
Add 2.8.0.1 details
Fix section header
Fix GH-actions syntax
Run tests on stable-branches
Release 2.8.1.rc1
Fix sendmail accepting string :arguments again
Fix sendmail accepting string :arguments again
Adds Ruby 3.2 to the CI matrix
Adding explicit JRuby support
2.8.1.edge
Merge pull request #1555 from mikel/2.8.0-perms-fix
↗️ minitest (indirect, 5.17.0 → 5.18.0) · Repo · Changelog
Release Notes
5.18.0 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 7 commits:
prepped for release
! Added assert_pattern & refute_pattern for pattern matching. (flavorjones)
Fixed typo in doco. (ahangarha)
- Support the new message format of NameError in Ruby 3.3 (mame)
Add 2.6 to matrix... stays until some rails versions expire, sadly.
Adds Ruby 3.2 to the CI matrix. Also updates checkout action version. (petergoldstein)
Minor tweak to Rakefile to fix CI on older rubies
↗️ nokogiri (indirect, 1.14.1 → 1.14.2) · Repo · Changelog
Release Notes
1.14.2
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
version bump to v1.14.2
Merge pull request #2791 from sparklemotion/2784-encoding-empty-strings-v1.14.x
doc: update CHANGELOG
fix: empty node set serialization when document encoding is nil
↗️ rack (indirect, 2.2.6.2 → 2.2.6.4) · Repo · Changelog
Security Advisories 🚨
🚨 Possible Denial of Service Vulnerability in Rack’s header parsing
🚨 Possible DoS Vulnerability in Multipart MIME parsing
Commits
See the full diff on Github. The new version differs by 4 commits:
bump version
Avoid ReDoS problem
bump version
Limit all multipart parts, not just files
↗️ rack-test (indirect, 2.0.2 → 2.1.0) · Repo · Changelog
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ railties (indirect, 6.1.7.2 → 6.1.7.3) · Repo · Changelog
Release Notes
6.1.7.3 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 4 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Ignore certain data-* attributes in rails-ujs when element is contenteditable
Implement SafeBuffer#bytesplice
↗️ timeout (indirect, 0.3.1 → 0.3.2) · Repo
Release Notes
0.3.2
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 10 commits:
bump up 0.3.2
Merge pull request #26 from ruby/improve-actions
exclude failing platforms: jruby(-head) and truffleruby with macos-latest
Use ruby/actions/.github/workflows/ruby_versions.yml@master
rename appropriate job name
Test the truffleruby release too
Simplify test
Don't move the timer_thread when it's enclosed
Merge pull request #23 from tricknotes/ruby-3.2
Add Ruby 3.2 to CI matrix
↗️ zeitwerk (indirect, 2.6.6 → 2.6.7) · Repo · Changelog
Release Notes
2.6.7 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 53 commits:
Ready for 2.6.7
CHANGELOG edit
CI: Remove exclusion of Ruby 3.2 on windows-latest
CHANGELOG edits
Mark private methods individually in Zeitwerk::Loader
Make the private shadowed_file? internal
Make the private mutex2 Ruby-private
Make the private mutex Ruby-private
Make the private shadowed_files internal
Make the private namespace_dirs internal
Make the private autoloaded_dirs internal
Make the private autoloads internal
Make the private to_unload internal
Update the CHANGELOG
Reset module state on `Zeitwerk::NameError`
Log failed autoloads whose require was successful
Encapsulate remove_const in a private helper
Prefer require_relative here
Introduce an internal method for better encapsulation towards the test suite
Syncs comment with code
Test that the tracer is not enable for implicit namespaces defined by two directories
Adds a test that verifies internal state consistency for namespaces
Adds test coverage for explicit namespaces, file first
Merge pull request #253 from teoljungberg/proveit
Merge pull request #252 from teoljungberg/fix-spelling-errors
Add minitest-proveit to force assertions
s/descendendant/descendant
s/avaiable/available
Revamp the comments in the Ruby compatibility test
Merge pull request #249 from shioyama/fix_typo_and_an
Fix typo
Document gem entry points have to be loaded with Kernel#require
Exclude 3.2 x windows-latest from the CI matrix
Add 3.2 to the CI matrix
Merge pull request #245 from teoljungberg/fix-links
Fix shadowed files
Fix synopsis
Fix reopening-third-party-namespaces
Fix inflection
Update explicit namespaces edge cases docs for Data
Update the URL for the CI badge in the README
Merge pull request #243 from shioyama/shioyama/remove_typo_constant
Remove TyPo constant in teardown
Merge pull request #242 from shioyama/shioyama/fix_eader_typos
Fix typos: eader -> eager
Document edge case re ignores and nested root directories
Let Zeitwerk::Loader#dirs filter ignored root directories out
Remove unnecessary headers
Update documentation about debuggers
Introduce convention for collapsed directories in tests
Introduce convention for ignored files and directories in tests
Simplify automatic root dirs setup in tests
Define convention for root directories in the test harness
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