🚨 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.
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?
↗️ activesupport (indirect, 6.1.7.1 → 6.1.7.3) · Repo · Changelog
Security Advisories 🚨
🚨 Possible XSS Security Vulnerability in SafeBuffer#bytesplice
Release Notes
6.1.7.3 (from changelog)
6.1.7.2 (from changelog)
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 3 commits:
Preparing for 6.1.7.3 release
Prepare version 6.1.7.3
Version 6.1.7.2
↗️ concurrent-ruby (indirect, 1.1.10 → 1.2.2) · Repo · Changelog
Release Notes
1.2.2
1.2.1
1.2.0
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
↗️ 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
↗️ tzinfo (indirect, 2.0.5 → 2.0.6) · Repo · Changelog
Release Notes
2.0.6
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 9 commits:
Fix formatting.
Preparing v2.0.6.
Add v1.2.11 from the 1.2 branch.
Update copyright years.
Eliminate Object#untaint deprecation warnings on JRuby 9.4.0.0.
Add Ruby 3.2 and JRuby 9.4.
Update the dependency on actions/checkout.
Fix include issues with tests on Ruby 3.2.
Revert "Workaround for 'Permission denied - NUL' errors with JRuby on Windows."
↗️ 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