A web application that allows citizens to "adopt" a storm drain in San Francisco. In use, and in development at other brigades. Looking for a maintainer or someone interested in developing further in collaboration with others across the country.
If you make any changes to it yourself then they will take precedence over the rebase.
Bumps rack from 2.0.7 to 2.1.2. This update includes security fixes.
Vulnerabilities fixed
Sourced from The GitHub Security Advisory Database.
Low severity vulnerability that affects rack
There's a possible information leak / session hijack vulnerability in Rack. Attackers may be able to find and hijack sessions by using timing attacks targeting the session id. Session ids are usually stored and indexed in a database that uses some kind of scheme for speeding up lookups of that session id. By carefully measuring the amount of time it takes to look up a session, an attacker may be able to find a valid session id and hijack the session.
The session id itself may be generated randomly, but the way the session is indexed by the backing store does not use a secure comparison.
Impact
The session id stored in a cookie is the same id that is used when querying the backing session storage engine. Most storage mechanisms (for example a database) use some sort of indexing in order to speed up the lookup of that id. By carefully timing requests and session lookup failures, an attacker may be able to perform a timing attack to determine an existing session id and hijack that session.
Releases
The 1.6.12 and 2.0.8 releases are available at the normal locations.
Workarounds
There are no known workarounds.
Patches
To aid users who aren't able to upgrade immediately we have provided patches for
the two supported release series. They are in git-am format and consist of a
Possible information leak / session hijack vulnerability
There's a possible information leak / session hijack vulnerability in Rack.
Attackers may be able to find and hijack sessions by using timing attacks
targeting the session id. Session ids are usually stored and indexed in a
database that uses some kind of scheme for speeding up lookups of that
session id. By carefully measuring the amount of time it takes to look up
a session, an attacker may be able to find a valid session id and hijack
the session.
The session id itself may be generated randomly, but the way the session is
indexed by the backing store does not use a secure comparison.
Impact:
The session id stored in a cookie is the same id that is used when querying
the backing session storage engine. Most storage mechanisms (for example a
database) use some sort of indexing in order to speed up the lookup of that
id. By carefully timing requests and session lookup failures, an attacker
may be able to perform a timing attack to determine an existing session id
and hijack that session.
All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference Keep A Changelog.
Unreleased
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)
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)
Response.[] and MockResponse.[] for creating instances using status, headers, and body. (@ioquatix)
Changed
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-Dispositionfilename if the UploadedFile instance has one. (@jeremyevans)
Request#ssl? is true for the wss scheme (secure websockets). (@jeremyevans)
Removed
BodyProxy#each as it was only needed to work around a bug in Ruby <1.9.3. (@jeremyevans)
Session::Abstract::SessionHash#transform_keys, no longer needed. (pavel)
URLMap::INFINITY and URLMap::NEGATIVE_INFINITY, in favor of Float::INFINITY. (@ch1c0t)
Deprecation of Rack::File. It will be deprecated again in rack 2.2 or 3.0. (@rafaelfranca)
Support for Ruby 2.2 as it is well past EOL. (@ioquatix)
Fixed
Cascade uses a new response object for each call if initialized with no apps. (@jeremyevans)
BodyProxy correctly delegates keyword arguments to the body object on Ruby 2.7+. (@jeremyevans)
BodyProxy#method correctly handles methods delegated to the body object. (@jeremyevans)
Request#host and Request#host_with_port handle IPv6 addresses correctly. (@AlexWayfer)
Lint checks when response hijacking that rack.hijack is called with a valid object. (@jeremyevans)
Response#write correctly updates Content-Length if initialized with a body. (@jeremyevans)
CommonLogger includes SCRIPT_NAME when logging. (@Erol)
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)
Coverage remained the same at 97.931% when pulling dd48f20c8b3b744c0da344dbc6336bc9fc32d75b on dependabot/bundler/rack-2.1.2 into 9de4236503d2c3807f7039199dd0ebe7d2258a06 on master.
⚠️ Dependabot is rebasing this PR ⚠️
If you make any changes to it yourself then they will take precedence over the rebase.
Bumps rack from 2.0.7 to 2.1.2. This update includes security fixes.
Vulnerabilities fixed
Sourced from The GitHub Security Advisory Database.
Sourced from The Ruby Advisory Database.
Changelog
Sourced from rack's changelog.
Commits
16a51d8
Bump for 2.1.2 release0a2c927
Update changelog in preparation for 2.1.2b50bc8b
Fix multipart parser for special files #1308f9ef9a0
Fixuse
with kwargs75d178c
Skip deflating in Rack::Deflater if Content-Length is 0e758a11
#transform_keys no longer necessary, reverts #1401c423510
Fix: Add to_hash to wrap Hash and Session classes8f57e83
Handle case where session id key is requested but it is missing799a520
Updating changelog for 2-1-stable4fabf4d
Bump version.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)