🚨 [security] Update sinatra 2.2.0 → 3.2.0 (major)
🚨 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?
✳️ sinatra (2.2.0 → 3.2.0) · Repo · Changelog
Security Advisories 🚨
🚨 Sinatra vulnerable to Reflected File Download attack
An issue was discovered in Sinatra 2.0 before 2.2.3 and 3.0 before 3.0.4.
An application is vulnerable to a reflected file download (RFD) attack that
sets the Content-Disposition header of a response when the filename is
derived from user-supplied input.
🚨 Sinatra vulnerable to Reflected File Download attack
An issue was discovered in Sinatra 2.0 before 2.2.3 and 3.0 before 3.0.4.
An application is vulnerable to a reflected file download (RFD) attack that
sets the Content-Disposition header of a response when the filename is
derived from user-supplied input.
Release Notes
3.2.0 (from changelog)
New: Add
#exceptmethod toSinatra::IndifferentHash(#1940)New: Use
Exception#detailed_messageto show backtrace (#1952)New: Add
Sinatra::HamlHelpersto sinatra-contrib (#1960)Fix: Add
base64to rack-protection runtime dependencies (#1946)Fix: Avoid open-ended dependencies for sinatra-contrib and rack-protection (#1949)
Fix: Helpful message when
Sinatra::Runnertimes out (#1975)Fix: Ruby 3.3 + Bundler 2.5 compatibility (#1975)
3.1.0 (from changelog)
New: Add sass support via sass-embedded #1911 by なつき
New: Add start and stop callbacks #1913 by Jevin Sew
New: Warn on dropping sessions #1900 by Jonathan del Strother
New: Make Puma the default server #1924 by Patrik Ragnarsson
Fix: Remove use of Tilt::Cache #1922 by Jeremy Evans (allows use of Tilt 2.2.0 without deprecation warning)
Fix: rack-protection: specify rack version requirement #1932 by Patrik Ragnarsson
3.0.6 (from changelog)
3.0.5 (from changelog)
Fix: Add Zeitwerk compatibility. #1831 by Dawid Janczak
Fix: Allow CALLERS_TO_IGNORE to be overridden
3.0.4 (from changelog)
- Fix: Escape filename in the Content-Disposition header. #1841 by Kunpei Sakai
3.0.3 (from changelog)
- Fix: fixed ReDoS for Rack::Protection::IPSpoofing. #1823 by @ooooooo-q
3.0.2 (from changelog)
- New: Add Haml 6 support. #1820 by Jordan Owens
3.0.1 (from changelog)
3.0.0 (from changelog)
New: Add Falcon support. #1794 by Samuel Williams and @horaciob
New: Add AES GCM encryption support for session cookies. [#1324] (#1324) by Michael Coyne
Deprecated: Sinatra Reloader will be removed in the next major release.
Fix: Internal Sinatra errors now extend
Sinatra::Error. This fixes #1204 and #1518. bda8c29d by Jordan OwensFix: Preserve query param value if named route param nil. #1676 by Jordan Owens
Require Ruby 2.6 as minimum Ruby version. #1699 by Eloy Pérez
Breaking change: Remove support for the Stylus template engine. #1697 by Eloy Pérez
Breaking change: Remove support for the erubis template engine. #1761 by Eloy Pérez
Breaking change: Remove support for the textile template engine. #1766 by Eloy Pérez
Breaking change: Remove support for SASS as a template engine. #1768 by Eloy Pérez
Breaking change: Remove support for Wlang as a template engine. #1780 by Eloy Pérez
Breaking change: Remove support for CoffeeScript as a template engine. #1790 by Eloy Pérez
Breaking change: Remove support for Mediawiki as a template engine. #1791 by Eloy Pérez
Breaking change: Remove support for Creole as a template engine. #1792 by Eloy Pérez
Breaking change: Remove support for Radius as a template engine. #1793 by Eloy Pérez
Breaking change: Remove support for the defunct Less templating library. See #1716, #1715 for more discussion and background. d1af2f1e by Olle Jonsson
Breaking change: Remove Reel integration. 54597502 by Olle Jonsson
CI: Start testing on Ruby 3.1. 60e221940 and b0fa4bef by Johannes Würbach
Use
Kernel#caller_locations. #1491 by Julik TarkhanovDocs: Japanese documentation: Add notes about the
default_content_typesetting. #1650 by Akifumi TominagaDocs: Polish documentation: Add section about Multithreaded modes and Routes. #1708 by Patrick Gramatowski
Docs: Japanese documentation: Make Session section reflect changes done to README.md. #1731 by @shu-i-chi
2.2.3 (from changelog)
Fix: Escape filename in the Content-Disposition header. #1841 by Kunpei Sakai
Fix: fixed ReDoS for Rack::Protection::IPSpoofing. #1823 by @ooooooo-q
2.2.2 (from changelog)
- Update mustermann dependency to version 2.
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.
✳️ rack (2.2.3 → 2.2.8) · Repo · Changelog
Security Advisories 🚨
🚨 Possible Denial of Service Vulnerability in Rack’s header parsing
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.
Versions Affected: >= 2.0.0 Not affected: None. Fixed Versions: 2.2.6.4, 3.0.6.1
Impact
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.
🚨 Possible DoS Vulnerability in Multipart MIME parsing
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.
🚨 Denial of service via header parsing in Rack
There is a possible denial of service vulnerability in the Range header
parsing component of Rack. This vulnerability has been assigned the CVE
identifier CVE-2022-44570.Versions Affected: >= 1.5.0
Not affected: None.
Fixed Versions: 2.0.9.2, 2.1.4.2, 2.2.6.2, 3.0.4.1Impact
Carefully crafted input can cause the Range header parsing component in Rack
to take an unexpected amount of time, possibly resulting in a denial of
service attack vector. Any applications that deal with Range requests (such
as streaming applications, or applications that serve files) may be impacted.Workarounds
There are no feasible workarounds for this issue.
🚨 Denial of service via multipart parsing in Rack
There is a denial of service vulnerability in the multipart parsing component
of Rack. This vulnerability has been assigned the CVE identifier
CVE-2022-44572.Versions Affected: >= 2.0.0
Not affected: None.
Fixed Versions: 2.0.9.2, 2.1.4.2, 2.2.6.1, 3.0.4.1Impact
Carefully crafted input can cause RFC2183 multipart boundary parsing in Rack
to take an unexpected amount of time, possibly resulting in a denial of
service attack vector. Any applications that parse multipart posts using
Rack (virtually all Rails applications) are impacted.Workarounds
There are no feasible workarounds for this issue.
🚨 Denial of Service Vulnerability in Rack Content-Disposition parsing
There is a denial of service vulnerability in the Content-Disposition parsing
component of Rack. This vulnerability has been assigned the CVE identifier
CVE-2022-44571.Versions Affected: >= 2.0.0
Not affected: None.
Fixed Versions: 2.0.9.2, 2.1.4.2, 2.2.6.1, 3.0.4.1Impact
Carefully crafted input can cause Content-Disposition header parsing in Rack
to take an unexpected amount of time, possibly resulting in a denial of
service attack vector. This header is used typically used in multipart
parsing. Any applications that parse multipart posts using Rack (virtually
all Rails applications) are impacted.Workarounds
There are no feasible workarounds for this issue.
🚨 Denial of Service Vulnerability in Rack Multipart Parsing
There is a possible denial of service vulnerability in the multipart parsing
component of Rack. This vulnerability has been assigned the CVE identifier
CVE-2022-30122.Versions Affected: >= 1.2
Not affected: < 1.2
Fixed Versions: 2.0.9.1, 2.1.4.1, 2.2.3.1Impact
Carefully crafted multipart POST requests can cause Rack's multipart parser to
take much longer than expected, leading to a possible denial of service
vulnerability.Impacted code will use Rack's multipart parser to parse multipart posts. This
includes directly using the multipart parser like this:params = Rack::Multipart.parse_multipart(env)But it also includes reading POST data from a Rack request object like this:
p request.POST # read POST data p request.params # reads both query params and POST dataAll users running an affected release should either upgrade or use one of the
workarounds immediately.Workarounds
There are no feasible workarounds for this issue.
🚨 Possible shell escape sequence injection vulnerability in Rack
There is a possible shell escape sequence injection vulnerability in the Lint
and CommonLogger components of Rack. This vulnerability has been assigned the
CVE identifier CVE-2022-30123.Versions Affected: All.
Not affected: None
Fixed Versions: 2.0.9.1, 2.1.4.1, 2.2.3.1Impact
Carefully crafted requests can cause shell escape sequences to be written to
the terminal via Rack's Lint middleware and CommonLogger middleware. These
escape sequences can be leveraged to possibly execute commands in the victim's
terminal.Impacted applications will have either of these middleware installed, and
vulnerable apps may have something like this:use Rack::LintOr
use Rack::CommonLoggerAll users running an affected release should either upgrade or use one of the
workarounds immediately.Workarounds
Remove these middleware from your application
Release Notes
2.2.7
What's Changed
- Correct the year number in the changelog by @kimulab in #2015
- Support underscore in host names for Rack 2.2 (Fixes #2070) by @jeremyevans in #2071
New Contributors
Full Changelog: v2.2.6.4...v2.2.7
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by 46 commits:
Bump patch version.Regenerate SPEC (#2102)Fix inefficient assert pattern in Rack::Lint (#2101)Prefer ubuntu-latest for testing. (#2095)Update cookie.rb (#2092)adds missing 2.2.7 to CHANGELOG.md (#2081)Limit file extension length of multipart tempfiles (#2069) (#2075)Bump patch version.Support underscore in host names for Rack 2.2 (Fixes #2070) (#2071)Merge branch '2-2-sec' into 2-2-stablebump versionAvoid ReDoS problemMerge branch '2-2-sec' into 2-2-stablebump versionLimit all multipart parts, not just filesCorrect the year in the changelog (#2015)bumping versionFix ReDoS in Rack::Utils.get_byte_rangesbump versionUpdate changelogFix ReDoS vulnerability in multipart parserForbid control characters in attributesBump patch version.Rack::MethodOverride handle QueryParser::ParamsTooDeepError (#2011)Remove leading dot to fix compatibility with latest cgi gem. (#1988)Update tests to work on latest Rubies. (#1999)Bump patch release.Fix Regexp deprecated third argument with Regexp::NOENCODING (#1998)fixup changelogbump versionBetter handling of case-insensitive headers for `Rack::Etag` middleware. (#1919)Add 'custom exception on params too deep error' change to CHANGELOG. (#1914)Expect additional optional version segment in version test. (#1913)Merge branch '2-2-sec' into 2-2-stableupdate changelogbump versionEscape untrusted text when loggingRestrict broken mime parsingEnsure Rack::QueryParser::ParamsTooDeepError is inherited from RangeError. (#1864)Add Ruby 2.3 compatibility for tests, add Ruby 2.3 to CI. (#1863)Merge pull request #1839 from RubyElders/2-2-stable-ciReplace CircleCI with GitHub Actions.Newer rubies spec compatibility.Merge pull request #1838 from RubyElders/custom-range-exception-2-2Use custom exception on params too deep error.Don't ary.inspect in the lint assertions (backport) (#1765)
↗️ mustermann (indirect, 1.1.1 → 3.0.0) · Repo
Commits
See the full diff on Github. The new version differs by 68 commits:
Update README.mdMerge pull request #133 from sinatra/v3-releaseBump version to 3.0Drop support for Rubies < 2.6Bump version to 2.0.2Merge pull request #134 from magni-/pp/ruby-3.2-fixDon't call #=~ on objects that don't respond to itUpdate Node.parse parameter definition to work in Ruby 3.2Test on Ruby@head as wellBump version to 2.0.1Merge pull request #129 from dentarg/improve-ciTest with Ruby 2.2 to 2.5Allow JRuby to fail, as it isn't supported yetBump actions/checkoutSet a resonable timeout for CIRun CI on all branchesRemove superfluous commentsMerge pull request #132 from eregon/ci-no-fail-fastOnly use coverage on CRubyDo not cancel other CI jobs when one failsMerge pull request #131 from eregon/truffleruby-ciMerge pull request #130 from eregon/fix-ruby2_keywords-usageFix usage of PP in testsAdd TruffleRuby in CIFix usage of ruby2_keywords, only use it for blocks which delegateBump version to 2.0Merge pull request #127 from sinatra/fix-circular-dependencyFix circular dependency warningMerge pull request #126 from sinatra/ruby3-supportUpdate code climate badgeFix issue with Ruby 3 keyword argumentsMerge pull request #116 from epergo/ep/remove-sinatra-extensionMerge pull request #120 from olleolleolle/patch-2Merge pull request #121 from olleolleolle/patch-3Merge pull request #123 from mishina2228/show-ci-resultsBump version to v1.1.2Pin simplecov to ~> 0.17.0Add jruby 9.3 to CIMerge pull request #119 from olleolleolle/patch-1Merge pull request #124 from mishina2228/update-document-for-edge-versionUpdate doc for using the edge version [ci skip]Remove `--tty` option to show test resultsMerge pull request #122 from michal-granec/handle-frozen-string-literalUse String.new instead of quotes #110Drop "executables" directive from mustermannDrop "executables" directive from gemspecCI: Add Ruby 3.1 to build matrixRemove extension for Sinatraupdate build status badgeMerge pull request #117 from namusyaka/actionsdelete .travis.ymlswitch ci from travis to GitHub ActionsMerge pull request #111 from olleolleolle/patch-1Merge pull request #113 from olleolleolle/patch-3Merge pull request #112 from olleolleolle/patch-2Merge pull request #115 from epergo/ep/remove-redcarpet-dependencyRemove redcarpet dependency as it not being usedCI: Drop EOL'd Ruby versionsCI: Allow 3.0&JRuby to fail, shorthand Ruby namesCI: Update patch versions of Ruby in the matrixAvoid "deprecated Object#=~ is called on Integer"CI: sudo: false is a noop, nowMerge pull request #109 from nateberkopec/patch-1Update/reword Ruby version supportMerge pull request #108 from olleolleolle/patch-1README: Drop defunct badge for gemnasiumYARD: avoid redundant @see bracesUpdate mustermann.rb
↗️ rack-protection (indirect, 2.2.0 → 3.2.0) · Repo · Changelog
Release Notes
3.2.0 (from changelog)
New: Add
#exceptmethod toSinatra::IndifferentHash(#1940)New: Use
Exception#detailed_messageto show backtrace (#1952)New: Add
Sinatra::HamlHelpersto sinatra-contrib (#1960)Fix: Add
base64to rack-protection runtime dependencies (#1946)Fix: Avoid open-ended dependencies for sinatra-contrib and rack-protection (#1949)
Fix: Helpful message when
Sinatra::Runnertimes out (#1975)Fix: Ruby 3.3 + Bundler 2.5 compatibility (#1975)
3.1.0 (from changelog)
New: Add sass support via sass-embedded #1911 by なつき
New: Add start and stop callbacks #1913 by Jevin Sew
New: Warn on dropping sessions #1900 by Jonathan del Strother
New: Make Puma the default server #1924 by Patrik Ragnarsson
Fix: Remove use of Tilt::Cache #1922 by Jeremy Evans (allows use of Tilt 2.2.0 without deprecation warning)
Fix: rack-protection: specify rack version requirement #1932 by Patrik Ragnarsson
3.0.6 (from changelog)
3.0.5 (from changelog)
Fix: Add Zeitwerk compatibility. #1831 by Dawid Janczak
Fix: Allow CALLERS_TO_IGNORE to be overridden
3.0.4 (from changelog)
- Fix: Escape filename in the Content-Disposition header. #1841 by Kunpei Sakai
3.0.3 (from changelog)
- Fix: fixed ReDoS for Rack::Protection::IPSpoofing. #1823 by @ooooooo-q
3.0.2 (from changelog)
- New: Add Haml 6 support. #1820 by Jordan Owens
3.0.1 (from changelog)
3.0.0 (from changelog)
New: Add Falcon support. #1794 by Samuel Williams and @horaciob
New: Add AES GCM encryption support for session cookies. [#1324] (#1324) by Michael Coyne
Deprecated: Sinatra Reloader will be removed in the next major release.
Fix: Internal Sinatra errors now extend
Sinatra::Error. This fixes #1204 and #1518. bda8c29d by Jordan OwensFix: Preserve query param value if named route param nil. #1676 by Jordan Owens
Require Ruby 2.6 as minimum Ruby version. #1699 by Eloy Pérez
Breaking change: Remove support for the Stylus template engine. #1697 by Eloy Pérez
Breaking change: Remove support for the erubis template engine. #1761 by Eloy Pérez
Breaking change: Remove support for the textile template engine. #1766 by Eloy Pérez
Breaking change: Remove support for SASS as a template engine. #1768 by Eloy Pérez
Breaking change: Remove support for Wlang as a template engine. #1780 by Eloy Pérez
Breaking change: Remove support for CoffeeScript as a template engine. #1790 by Eloy Pérez
Breaking change: Remove support for Mediawiki as a template engine. #1791 by Eloy Pérez
Breaking change: Remove support for Creole as a template engine. #1792 by Eloy Pérez
Breaking change: Remove support for Radius as a template engine. #1793 by Eloy Pérez
Breaking change: Remove support for the defunct Less templating library. See #1716, #1715 for more discussion and background. d1af2f1e by Olle Jonsson
Breaking change: Remove Reel integration. 54597502 by Olle Jonsson
CI: Start testing on Ruby 3.1. 60e221940 and b0fa4bef by Johannes Würbach
Use
Kernel#caller_locations. #1491 by Julik TarkhanovDocs: Japanese documentation: Add notes about the
default_content_typesetting. #1650 by Akifumi TominagaDocs: Polish documentation: Add section about Multithreaded modes and Routes. #1708 by Patrick Gramatowski
Docs: Japanese documentation: Make Session section reflect changes done to README.md. #1731 by @shu-i-chi
2.2.3 (from changelog)
Fix: Escape filename in the Content-Disposition header. #1841 by Kunpei Sakai
Fix: fixed ReDoS for Rack::Protection::IPSpoofing. #1823 by @ooooooo-q
2.2.2 (from changelog)
- Update mustermann dependency to version 2.
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.
↗️ tilt (indirect, 2.0.10 → 2.3.0) · Repo · Changelog
Release Notes
2.1.0 (from changelog)
- Use UnboundMethod#bind_call on Ruby 2.7+ for better performance (#380, jeremyevans)
- Add Tilt::Template#freeze_string_literals? for freezing string literals in compiled templates (#301, jeremyevans)
- Use Haml::Template for Tilt::HamlTemplate if available (Haml 6+) (#391, ntkme)
- Deprecate BlueCloth, Less, and Sigil support (#382, jeremyevans)
- Add Template#compiled_path accessor to save compiled template output to file (#369, jeremyevans)
- Add Mapping#unregister to remove registered extensions (#376, jeremyevans)
- Add Mapping#register_pipeline to register template pipelines (#259, jeremyevans)
- Remove Tilt::Dummy (#364, jeremyevans)
- Ensure Mapping#extensions_for returns unique values (#342, mojavelinux)
- Remove opal support, since the the opal API changed (#374, jeremyevans)
- Remove .livescript extension for LiveScript (#374, jeremyevans)
- Set required_ruby_version in gemspec (#371, jeremyevans)
2.0.11 (from changelog)
Does any of this look wrong? Please let us know.
🆕 base64 (added, 0.2.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)