Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚨 [security] Update activesupport 6.1.7.2 → 6.1.7.7 (patch) #94

Closed
wants to merge 1 commit into from

Conversation

depfu[bot]
Copy link
Contributor

@depfu depfu bot commented Feb 22, 2024


🚨 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 (6.1.7.2 → 6.1.7.7) · Repo · Changelog

Security Advisories 🚨

🚨 Possible File Disclosure of Locally Encrypted Files

There is a possible file disclosure of locally encrypted files in Active Support. This vulnerability has been assigned the CVE identifier CVE-2023-38037.

Versions Affected: >= 5.2.0 Not affected: < 5.2.0 Fixed Versions: 7.0.7.1, 6.1.7.5

Impact

ActiveSupport::EncryptedFile writes contents that will be encrypted to a temporary file. The temporary file’s permissions are defaulted to the user’s current umask settings, meaning that it’s possible for other users on the same system to read the contents of the temporary file.

Attackers that have access to the file system could possibly read the contents of this temporary file while a user is editing it.

All users running an affected release should either upgrade or use one of the workarounds immediately.

Releases

The fixed releases are available at the normal locations.

Workarounds

To work around this issue, you can set your umask to be more restrictive like this:

$ umask 0077

🚨 Possible XSS Security Vulnerability in SafeBuffer#bytesplice

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.

Release Notes

6.1.7.7 (from changelog)

  • No changes.

6.1.7.6 (from changelog)

  • No changes.

6.1.7.5 (from changelog)

  • Use a temporary file for storing unencrypted files while editing

    [CVE-2023-38037]

6.1.7.4 (from changelog)

  • No changes.

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 more commits than we can show here.

↗️ concurrent-ruby (indirect, 1.2.0 → 1.2.3) · Repo · Changelog

Release Notes

1.2.3

What's Changed

New Contributors

Full Changelog: v1.2.2...v1.2.3

1.2.2

concurrent-ruby 1.2.2:

  • (#993) Fix arguments passed to Concurrent::Map's default_proc.

1.2.1

concurrent-ruby 1.2.1:

  • (#990) Add missing require 'fiber' for FiberLocalVar.
  • (#989) Optimize Concurrent::Map#[] on CRuby by letting the backing Hash handle the default_proc.

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 41 commits:

↗️ i18n (indirect, 1.12.0 → 1.14.1) · Repo · Changelog

Release Notes

1.14.1

Included in this release

  • Simplify the "Translation missing" message when default is an empty Array by @amatsuda in #662

Maintenance stuff

Thanks to @amatsuda for these PRs!

New Contributors

Full Changelog: v1.14.0...v1.14.1

1.14.0

What's Changed

  • fix LazyLoadable#available_locales duplicating locales by @ccutrer in #655
  • Add more helpful translation error when :default option is provided. by @Nerian in #654
  • Fix I18n::Locale::Fallbacks not initializing itself on Ruby 3 by @yheuhtozr in #653
  • Fix I18n.t when locale contains separator by @tubaxenor in #656
    • This reverts a change from #651, that was released in v1.13.0

New Contributors

Full Changelog: v1.13.0...v1.14.0

1.13.0

What's Changed

New Contributors

Full Changelog: v1.12.0...v1.13.0

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 51 commits:

↗️ minitest (indirect, 5.17.0 → 5.22.2) · Repo · Changelog

Release Notes

5.22.2 (from changelog)

  • 1 bug fix:

    • Third time’s a charm? Remember: ‘ensure’ is almost always the wrong way to go (for results… it’s great for cleaning up).

5.22.1 (from changelog)

  • 1 bug fix:

    • Don’t exit non-zero if no tests ran and no filter (aka, the test file is empty). (I’m starting to think the exit 1 thing for @tenderlove was a mistake…)

5.22.0 (from changelog)

  • 1 minor enhancement:

    • Added “did you mean” output if your –name filter matches nothing. (tenderlove)

  • 2 bug fixes:

    • Big cleanup of test filtering. Much prettier / more functional.

    • Fix situation where Assertion#location can’t find the location. (pftg)

5.21.2 (from changelog)

  • 1 bug fix:

    • Fixed bug in Minitest::Compress#compress formatting w/ nested patterns. Now recurses properly.

5.21.1 (from changelog)

  • 1 bug fix:

    • Rails’ default backtrace filter can’t currently work with caller_locations, so reverting back to caller.

5.21.0 (from changelog)

  • 10 minor enhancements:

    • Add include_all kw arg to assert_respond_to and refute_respond_to.

    • Added –quiet flag to skip ProgressReporter (prints the dots). Minor speedup.

    • Added Minitest::Compress#compress and added it to UnexpectedError.

    • Added ability to initialize BacktraceFilter w/ custom regexp.

    • Filter failure backtraces using backtrace_filter before calculating location. (thomasmarshall)

    • Make BacktraceFilter#filter compatible with locations (still compares strings).

    • Optimized Assertion#location ~30%.

    • Output relative paths for all failures/errors/backtraces.

    • Refactored location information in assertions, now using locations.

    • Removed thread and mutex_m dependencies. (hsbt, eregon)

  • 2 bug fixes:

    • Drop undocumented bt arg in #skip. Dunno why that ever happened, prolly for testing?

    • Fix mock to work with ruby debugger enabled. (keithlayne)

5.20.0 (from changelog)

  • 1 minor enhancement:

    • Optionally allow autorun exit hook to remain active in forked child. (casperisfine)

5.19.0 (from changelog)

  • 2 minor enhancements:

    • Add metadata lazy accessor to Runnable / Result. (matteeyah)

    • Only load minitest/unit (aka ancient MiniTest compatibility layer) if ENV

  • 1 bug fix:

    • Minitest::TestTask enthusiastically added itself to default. (ParadoxV5)

5.18.1 (from changelog)

  • 3 bug fixes:

    • Avoid extra string allocations when filtering tests. (tenderlove)

    • Only mention deprecated ENV if it is an integer string.

    • Push up test_order to Minitest::Runnable to fix minitest/hell. (koic)

5.18.0 (from changelog)

  • 2 major enhancements:

    • Added assert_pattern & refute_pattern for pattern matching. (flavorjones)

    • Added matching must_pattern_match & wont_pattern_match to minitest/spec.

  • 1 bug fix:

    • Support the new message format of NameError in Ruby 3.3 (mame)

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 52 commits:

↗️ tzinfo (indirect, 2.0.5 → 2.0.6) · Repo · Changelog

Release Notes

2.0.6

  • Eliminate Object#untaint deprecation warnings on JRuby 9.4.0.0. #145.

TZInfo v2.0.6 on RubyGems.org

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by 9 commits:

↗️ zeitwerk (indirect, 2.6.6 → 2.6.13) · Repo · Changelog

Release Notes

2.6.13 (from changelog)

  • There is a new experimental null inflector that simply returns its input unchanged:

    loader.inflector = Zeitwerk::NullInflector.new

    Projects using this inflector are expected to define their constants in files and directories with names exactly matching them:

    User.rb       -> User
    HTMLParser.rb -> HTMLParser
    Admin/Role.rb -> Admin::Role
    

    Please see its documentation for further details.

  • Documentation improvements.

2.6.12 (from changelog)

  • Maintenance release with some internal polishing.

2.6.11 (from changelog)

  • Let on_load callbacks for implicit namespaces autoload other implicit namespaces.

2.6.10 (from changelog)

  • Improve validation of the values returned by the inflector's camelize.

2.6.9 (from changelog)

  • Given a path as a string or Pathname object, Zeitwerk::Loader#cpath_expected_at returns a string with the corresponding expected constant path.

    Some examples, assuming that app/models is a root directory:

    loader.cpath_expected_at("app/models")                  # => "Object"
    loader.cpath_expected_at("app/models/user.rb")          # => "User"
    loader.cpath_expected_at("app/models/hotel")            # => "Hotel"
    loader.cpath_expected_at("app/models/hotel/billing.rb") # => "Hotel::Billing"

    This method returns nil for some input like ignored files, and may raise errors too. Please check its documentation for further details.

  • Zeitwerk::Loader#load_file raises with a more informative error if given a hidden file or directory.

  • Zeitwerk::Loader#eager_load_dir does nothing if the argument is a hidden file or directory. This is coherent with its existing behavior for eager load exclusions and ignored paths. Before, that kind of argument would result in a non-deliberate NameError.

  • Documentation improvements.

2.6.8 (from changelog)

  • The new Zeitwerk::Loader.for_gem_extension gives you a loader configured according to the conventions of a gem extension.

    Please check its documentation for further details.

2.6.7 (from changelog)

  • Reset module state on Zeitwerk::NameError.

    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.

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.


Depfu Status

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)

Copy link
Contributor Author

depfu bot commented Jun 5, 2024

Closed in favor of #100.

@depfu depfu bot closed this Jun 5, 2024
@depfu depfu bot deleted the depfu/update/activesupport-6.1.7.7 branch June 5, 2024 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants