[Security] Bump activesupport from 3.2.8 to 6.1.4
Bumps activesupport from 3.2.8 to 6.1.4. This update includes security fixes.
Vulnerabilities fixed
Sourced from The Ruby Advisory Database.
Possible Denial of Service attack in Active Support Specially crafted XML documents can cause applications to raise a
SystemStackErrorand potentially cause a denial of service attack. This only impacts applications using REXML or JDOM as their XML processor. Other XML processors that Rails supports are not impacted.All users running an affected release should either upgrade or use one of the work arounds immediately.
Workarounds
Use an XML parser that is not impacted by this problem, such as Nokogiri or LibXML. You can change the processor like this:
ActiveSupport::XmlMini.backend = 'Nokogiri'
If you cannot change XML parsers, then adjust
RUBY_THREAD_MACHINE_STACK_SIZE.Patched versions: >= 4.2.2; ~> 4.1.11; ~> 3.2.22 Unaffected versions: none
Sourced from The GitHub Security Advisory Database.
Moderate severity vulnerability that affects activesupport The ActiveSupport::XmlMini_JDOM backend in lib/active_support/xml_mini/jdom.rb in the Active Support component in Ruby on Rails 3.0.x and 3.1.x before 3.1.12 and 3.2.x before 3.2.13, when JRuby is used, does not properly restrict the capabilities of the XML parser, which allows remote attackers to read arbitrary files or cause a denial of service (resource consumption) via vectors involving (1) an external DTD or (2) an external entity declaration in conjunction with an entity reference.
Affected versions: >= 3.2.0, < 3.2.13
Sourced from The Ruby Advisory Database.
XML Parsing Vulnerability affecting JRuby users The ActiveSupport XML parsing functionality supports multiple pluggable backends. One backend supported for JRuby users is ActiveSupport::XmlMini_JDOM which makes use of the javax.xml.parsers.DocumentBuilder class. In some JVM configurations the default settings of that class can allow an attacker to construct XML which, when parsed, will contain the contents of arbitrary URLs including files from the application server. They may also allow for various denial of service attacks. Action Pack
Patched versions: ~> 3.1.12; >= 3.2.13 Unaffected versions: ~> 2.3.0
Sourced from The Ruby Advisory Database.
Potentially unintended unmarshalling of user-provided objects in MemCacheStore and RedisCacheStore There is potentially unexpected behaviour in the MemCacheStore and RedisCacheStore where, when untrusted user input is written to the cache store using the
raw: trueparameter, re-reading the result from the cache can evaluate the user input as a Marshalled object instead of plain text. Vulnerable code looks like:data = cache.fetch("demo", raw: true) { untrusted_string }Versions Affected: rails < 5.2.5, rails < 6.0.4 Not affected: Applications not using MemCacheStore or RedisCacheStore. Applications that do not use the
rawoption when storing untrusted user input. Fixed Versions: rails >= 5.2.4.3, rails >= 6.0.3.1Impact
Unmarshalling of untrusted user input can have impact up to and including RCE. At a minimum, this vulnerability allows an attacker to inject untrusted Ruby objects into a web application.
In addition to upgrading to the latest versions of Rails, developers should ensure that whenever they are calling
Rails.cache.fetchthey are using consistent values of therawparameter for both
... (truncated)
Patched versions: ~> 5.2.4.3; >= 6.0.3.1 Unaffected versions: none
Sourced from The Ruby Advisory Database.
Potentially unintended unmarshalling of user-provided objects in MemCacheStore and RedisCacheStore There is potentially unexpected behaviour in the MemCacheStore and RedisCacheStore where, when untrusted user input is written to the cache store using the
raw: trueparameter, re-reading the result from the cache can evaluate the user input as a Marshalled object instead of plain text. Vulnerable code looks like:data = cache.fetch("demo", raw: true) { untrusted_string }Versions Affected: rails < 5.2.5, rails < 6.0.4 Not affected: Applications not using MemCacheStore or RedisCacheStore. Applications that do not use the
rawoption when storing untrusted user input. Fixed Versions: rails >= 5.2.4.3, rails >= 6.0.3.1Impact
Unmarshalling of untrusted user input can have impact up to and including RCE. At a minimum, this vulnerability allows an attacker to inject untrusted Ruby objects into a web application.
In addition to upgrading to the latest versions of Rails, developers should ensure that whenever they are calling
Rails.cache.fetchthey are using consistent values of therawparameter for both
... (truncated)
Patched versions: ~> 5.2.4, >= 5.2.4.3; >= 6.0.3.1 Unaffected versions: none
Sourced from The Ruby Advisory Database.
Possible Denial of Service attack in Active Support Specially crafted XML documents can cause applications to raise a
SystemStackErrorand potentially cause a denial of service attack. This only impacts applications using REXML or JDOM as their XML processor. Other XML processors that Rails supports are not impacted.All users running an affected release should either upgrade or use one of the work arounds immediately.
Workarounds
Use an XML parser that is not impacted by this problem, such as Nokogiri or LibXML. You can change the processor like this:
ActiveSupport::XmlMini.backend = 'Nokogiri'
If you cannot change XML parsers, then adjust
RUBY_THREAD_MACHINE_STACK_SIZE.Patched versions: >= 4.2.2; ~> 4.1.11; ~> 3.2.22 Unaffected versions: none
Release notes
Sourced from activesupport's releases.
6.1.4
Active Support
MemCacheStore: convert any underlying value (including
false) to anEntry.See #42559.
Alex Ghiculescu
Fix bug in
number_with_precisionwhen using largeBigDecimalvalues.Fixes #42302.
Federico Aldunate, Zachary Scott
Check byte size instead of length on
secure_compare.Tietew
Fix
Time.atto not lose:inoption.Ryuta Kamizono
Require a path for
config.cache_store = :file_store.Alex Ghiculescu
Avoid having to store complex object in the default translation file.
Rafael Mendonça França
Active Model
Fix
to_jsonforActiveModel::Dirtyobject.Exclude +mutations_from_database+ attribute from json as it lead to recursion.
Anil Maurya
Active Record
Do not try to rollback transactions that failed due to a
ActiveRecord::TransactionRollbackError.Jamie McCarthy
... (truncated)
Changelog
Sourced from activesupport's changelog.
Rails 6.1.4 (June 24, 2021)
MemCacheStore: convert any underlying value (including
false) to anEntry.See #42559.
Alex Ghiculescu
Fix bug in
number_with_precisionwhen using largeBigDecimalvalues.Fixes #42302.
Federico Aldunate, Zachary Scott
Check byte size instead of length on
secure_compare.Tietew
Fix
Time.atto not lose:inoption.Ryuta Kamizono
Require a path for
config.cache_store = :file_store.Alex Ghiculescu
Avoid having to store complex object in the default translation file.
Rafael Mendonça França
Rails 6.1.3.2 (May 05, 2021)
- No changes.
Rails 6.1.3.1 (March 26, 2021)
- No changes.
Rails 6.1.3 (February 17, 2021)
- No changes.
Rails 6.1.2.1 (February 10, 2021)
- No changes.
... (truncated)
Commits
8321702Preparing for 6.1.4 releasee71539cUpdate CHANGELOG6ae28e1Add changelog for #42559e60f3ffMemCacheStore: always convert underlying values into anEntry17a4a0cAdd CHANGELOG entry for #42316 and #423415608ba8NumberToRoundedConverter should handle -Float::INFINITY942267bUse BigDecimal compatible operation in NumberToRoundedConverter255b5ffFix compatibility with psych 4.x4829faeMerge branch '6-1-sec' into 6-1-stable75ac626Preparing for 6.1.3.2 release- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
-
@dependabot rebasewill rebase this PR -
@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it -
@dependabot mergewill merge this PR after your CI passes on it -
@dependabot squash and mergewill squash and merge this PR after your CI passes on it -
@dependabot cancel mergewill cancel a previously requested merge and block automerging -
@dependabot reopenwill reopen this PR if it is closed -
@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) -
@dependabot use these labelswill set the current labels as the default for future PRs for this repo and language -
@dependabot use these reviewerswill set the current reviewers as the default for future PRs for this repo and language -
@dependabot use these assigneeswill set the current assignees as the default for future PRs for this repo and language -
@dependabot use this milestonewill set the current milestone as the default for future PRs for this repo and language -
@dependabot badge mewill comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)