pivotal / blog

Pivotal Engineering Blog
https://engineering.pivotal.io/
40 stars 47 forks source link

[Security] Bump rack from 2.0.8 to 2.2.2 in /pushpop #267

Closed dependabot-preview[bot] closed 4 years ago

dependabot-preview[bot] commented 4 years ago

Bumps rack from 2.0.8 to 2.2.2. This update includes a security fix.

Vulnerabilities fixed

Sourced from The Ruby Advisory Database.

Directory traversal in Rack::Directory app bundled with Rack There was a possible directory traversal vulnerability in the Rack::Directory app that is bundled with Rack.

Versions Affected: rack < 2.2.0 Not affected: Applications that do not use Rack::Directory. Fixed Versions: 2.1.3, >= 2.2.0

Impact

If certain directories exist in a director that is managed by Rack::Directory, an attacker could, using this vulnerability, read the contents of files on the server that were outside of the root specified in the Rack::Directory initializer.

Workarounds

Until such time as the patch is applied or their Rack version is upgraded, we recommend that developers do not use Rack::Directory in their

... (truncated)

Patched versions: ~> 2.1.3; >= 2.2.0 Unaffected versions: none

Changelog

Sourced from rack's changelog.

[2.2.2] - 2020-02-11

Fixed

  • Fix incorrect Rack::Request#host value. (#1591, @ioquatix)
  • Revert Rack::Handler::Thin implementation. (#1583, @jeremyevans)
  • Double assignment is still needed to prevent an "unused variable" warning. (#1589, @kamipo)
  • Fix to handle same_site option for session pool. (#1587, @kamipo)

[2.2.1] - 2020-02-09

Fixed

  • Rework Rack::Request#ip to handle empty forwarded_for. (#1577, @ioquatix)

[2.2.0] - 2020-02-08

SPEC Changes

  • rack.session request environment entry must respond to to_hash and return unfrozen Hash. (@jeremyevans)
  • Request environment cannot be frozen. (@jeremyevans)
  • CGI values in the request environment with non-ASCII characters must use ASCII-8BIT encoding. (@jeremyevans)
  • Improve SPEC/lint relating to SERVER_NAME, SERVER_PORT and HTTP_HOST. (#1561, @ioquatix)

Added

  • rackup supports multiple -r options and will require all arguments. (@jeremyevans)
  • Server supports an array of paths to require for the :require option. (@khotta)
  • Files supports multipart range requests. (@fatkodima)
  • Multipart::UploadedFile supports an IO-like object instead of using the filesystem, using :filename and :io options. (@jeremyevans)
  • Multipart::UploadedFile supports keyword arguments :path, :content_type, and :binary in addition to positional arguments. (@jeremyevans)
  • Static supports a :cascade option for calling the app if there is no matching file. (@jeremyevans)
  • Session::Abstract::SessionHash#dig. (@jeremyevans)
  • Response.[] and MockResponse.[] for creating instances using status, headers, and body. (@ioquatix)
  • Convenient cache and content type methods for Rack::Response. (#1555, @ioquatix)

Changed

  • Request#params no longer rescues EOFError. (@jeremyevans)
  • Directory uses a streaming approach, significantly improving time to first byte for large directories. (@jeremyevans)
  • Directory no longer includes a Parent directory link in the root directory index. (@jeremyevans)
  • QueryParser#parse_nested_query uses original backtrace when reraising exception with new class. (@jeremyevans)
  • ConditionalGet follows RFC 7232 precedence if both If-None-Match and If-Modified-Since headers are provided. (@jeremyevans)
  • .ru files supports the frozen-string-literal magic comment. (@eregon)
  • Rely on autoload to load constants instead of requiring internal files, make sure to require 'rack' and not just 'rack/...'. (@jeremyevans)
  • Etag will continue sending ETag even if the response should not be cached. (@henm)
  • Request#host_with_port no longer includes a colon for a missing or empty port. (@AlexWayfer)
  • All handlers uses keywords arguments instead of an options hash argument. (@ioquatix)
  • Files handling of range requests no longer return a body that supports to_path, to ensure range requests are handled correctly. (@jeremyevans)
  • Multipart::Generator only includes Content-Length for files with paths, and Content-Disposition filename if the UploadedFile instance has one. (@jeremyevans)
... (truncated)
Commits
  • a5e80f0 Bump version.
  • b0de37d Remove trailing whitespace.
  • 1a784e5 Prepare CHANGELOG for next patch release.
  • a0d57d4 Fix to handle same_site option for session pool
  • a9b223b Ensure full match. Fixes #1590.
  • f4c5645 Double assignment is still needed to prevent an "unused variable" warning
  • 5c121dd Revert "Update Thin handler to better handle more options"
  • 961d976 Prepare point release.
  • 2d00d05 Add CHANGELOG entry for #1577.
  • f8fd024 Update CHANGELOG to include 2.2.0.
  • Additional commits viewable in compare view


Dependabot compatibility score

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 rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will 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 version` will 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 dependency` will 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 labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will 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](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)