Description
Active Storage allows users to attach cloud and local files in Rails applications. Prior to versions 8.1.2.1, 8.0.4.1, and 7.2.3.1, when serving files through Active Storage's proxy delivery mode, the proxy controller loads the entire requested byte range into memory before sending it. A request with a large or unbounded Range header (e.g. `bytes=0-`) could cause the server to allocate memory proportional to the file size, possibly resulting in a DoS vulnerability through memory exhaustion. Versions 8.1.2.1, 8.0.4.1, and 7.2.3.1 contain a patch.
CVSS breakdown
CVSS 4.0
Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Confidentiality (Vulnerable System)
None
Integrity (Vulnerable System)
None
Availability (Vulnerable System)
High
Confidentiality (Subsequent System)
None
Integrity (Subsequent System)
None
Availability (Subsequent System)
None
E
Unchanged
Affected products
- rails / activestorage>= 8.1.0.beta1, < 8.1.2.1 – >= 8.1.0.beta1, < 8.1.2.1
- rails / activestorage>= 8.0.0.beta1, < 8.0.4.1 – >= 8.0.0.beta1, < 8.0.4.1
- rails / activestorage< 7.2.3.1 – < 7.2.3.1
References
- VENDOR_ADVISORYhttps://github.com/rails/rails/security/advisories/GHSA-r46p-8f7g-vvvg
- PATCHhttps://github.com/rails/rails/commit/2cd933c366b777f873d4d590127da2f4a25e4ba5
- PATCHhttps://github.com/rails/rails/commit/42012eaaa88dfc7d0030161b2bc8074a7bbce92a
- PATCHhttps://github.com/rails/rails/commit/8159a9c3de3f27a2bcf2866b8bf9ceb9075e229b
- PATCHhttps://github.com/rails/rails/releases/tag/v7.2.3.1
- PATCHhttps://github.com/rails/rails/releases/tag/v8.0.4.1
- PATCHhttps://github.com/rails/rails/releases/tag/v8.1.2.1
Updated 35m ago · 8 sources