-
Notifications
You must be signed in to change notification settings - Fork 130
Commit 7bd6128
authored
Update dependency rack to v3.2.3 [SECURITY] (#678)
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [rack](https://redirect.github.com/rack/rack)
([changelog](https://redirect.github.com/rack/rack/blob/main/CHANGELOG.md))
| `3.2.2` -> `3.2.3` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
|
### GitHub Vulnerability Alerts
####
[CVE-2025-61780](https://redirect.github.com/rack/rack/security/advisories/GHSA-r657-rxjc-j557)
## Summary
A possible information disclosure vulnerability existed in
`Rack::Sendfile` when running behind a proxy that supports `x-sendfile`
headers (such as Nginx). Specially crafted headers could cause
`Rack::Sendfile` to miscommunicate with the proxy and trigger unintended
internal requests, potentially bypassing proxy-level access
restrictions.
## Details
When `Rack::Sendfile` received untrusted `x-sendfile-type` or
`x-accel-mapping` headers from a client, it would interpret them as
proxy configuration directives. This could cause the middleware to send
a "redirect" response to the proxy, prompting it to reissue a new
internal request that was **not subject to the proxy's access
controls**.
An attacker could exploit this by:
1. Setting a crafted `x-sendfile-type: x-accel-redirect` header.
2. Setting a crafted `x-accel-mapping` header.
3. Requesting a path that qualifies for proxy-based acceleration.
## Impact
Attackers could bypass proxy-enforced restrictions and access internal
endpoints intended to be protected (such as administrative pages). The
vulnerability did not allow arbitrary file reads but could expose
sensitive application routes.
This issue only affected systems meeting all of the following
conditions:
* The application used `Rack::Sendfile` with a proxy that supports
`x-accel-redirect` (e.g., Nginx).
* The proxy did **not** always set or remove the `x-sendfile-type` and
`x-accel-mapping` headers.
* The application exposed an endpoint that returned a body responding to
`.to_path`.
## Mitigation
* Upgrade to a fixed version of Rack which requires explicit
configuration to enable `x-accel-redirect`:
```ruby
use Rack::Sendfile, "x-accel-redirect"
```
* Alternatively, configure the proxy to always set or strip the headers
(you should be doing this!):
```nginx
proxy_set_header x-sendfile-type x-accel-redirect;
proxy_set_header x-accel-mapping /var/www/=/files/;
```
* Or in Rails applications, disable sendfile completely:
```ruby
config.action_dispatch.x_sendfile_header = nil
```
####
[CVE-2025-61919](https://redirect.github.com/rack/rack/security/advisories/GHSA-6xw4-3v39-52mm)
## Summary
`Rack::Request#POST` reads the entire request body into memory for
`Content-Type: application/x-www-form-urlencoded`, calling
`rack.input.read(nil)` without enforcing a length or cap. Large request
bodies can therefore be buffered completely into process memory before
parsing, leading to denial of service (DoS) through memory exhaustion.
## Details
When handling non-multipart form submissions, Rack’s request parser
performs:
```ruby
form_vars = get_header(RACK_INPUT).read
```
Since `read` is called with no argument, the entire request body is
loaded into a Ruby `String`. This occurs before query parameter parsing
or enforcement of any `params_limit`. As a result, Rack applications
without an upstream body-size limit can experience unbounded memory
allocation proportional to request size.
## Impact
Attackers can send large `application/x-www-form-urlencoded` bodies to
consume process memory, causing slowdowns or termination by the
operating system (OOM). The effect scales linearly with request size and
concurrency. Even with parsing limits configured, the issue occurs
*before* those limits are enforced.
## Mitigation
* Update to a patched version of Rack that enforces form parameter
limits using `query_parser.bytesize_limit`, preventing unbounded reads
of `application/x-www-form-urlencoded` bodies.
* Enforce strict maximum body size at the proxy or web server layer
(e.g., Nginx `client_max_body_size`, Apache `LimitRequestBody`).
---
### Release Notes
<details>
<summary>rack/rack (rack)</summary>
###
[`v3.2.3`](https://redirect.github.com/rack/rack/compare/v3.2.2...v3.2.3)
[Compare
Source](https://redirect.github.com/rack/rack/compare/v3.2.2...v3.2.3)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "" in timezone Asia/Tokyo, Automerge -
At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/line/line-bot-sdk-ruby).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbImRlcGVuZGVuY3kgdXBncmFkZSJdfQ==-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>1 parent 06934c6 commit 7bd6128Copy full SHA for 7bd6128
File tree
Expand file treeCollapse file tree
1 file changed
+1
-1
lines changedOpen diff view settings
Filter options
Expand file treeCollapse file tree
1 file changed
+1
-1
lines changedOpen diff view settings
Collapse file
+1-1Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| |||
0 commit comments