Possible DoS vulnerability in Action Controller Live streaming
Published: November 04, 2026
SECURITY IDENTIFIERS
- GHSA: GHSA-rwvh-fw6r-pwvp
- Vendor Advisory: https://github.com/rails/rails/security/advisories/GHSA-rwvh-fw6r-pwvp
GEM
FRAMEWORK
SEVERITY
CVSS v3.x: 5.9 (Medium)
PATCHED VERSIONS
~> 8.0.5, >= 8.0.5.2
>= 8.1.4.1
DESCRIPTION
Impact
ActionController::Live::Buffer#close pushes its end-of-stream marker onto
the response's bounded queue while it holds the buffer's monitor. When the
client has stopped reading and the queue is full, the push blocks, and
Buffer#abort, which runs when the client disconnects or a write times out,
waits indefinitely for the same monitor. Each such response could permanently
hold a web server thread and its ActionController::Live thread, possibly
resulting in a DoS vulnerability through thread exhaustion.
Applications that stream responses with ActionController::Live, including
send_stream, are affected. Applications that serve large files through
Active Storage proxy mode are exposed to unauthenticated clients.
Releases
The fixed releases are available at the normal locations.
Patches for those who cannot upgrade at once:
- 8.1: https://github.com/rails/rails/commit/ccbfc09690fef05fdd2a9969c917a71b92cc98fc.patch
- 8.0: https://github.com/rails/rails/commit/27ad18ed5900dee28ba20e9c6fc718ff751fa215.patch
Credit
This issue was found by the Anthropic OSS Scanner (ANT-2026-LDFW5N2T).
RELATED
- https://rubygems.org/gems/actionpack/versions/8.1.4.1
- https://github.com/rails/rails/releases/tag/v8.1.4.1
- https://rubygems.org/gems/actionpack/versions/8.0.5.2
- https://github.com/rails/rails/releases/tag/v8.0.5.2
- https://github.com/rails/rails/commit/ccbfc09690fef05fdd2a9969c917a71b92cc98fc
- https://github.com/rails/rails/commit/27ad18ed5900dee28ba20e9c6fc718ff751fa215
- https://github.com/rails/rails/security/advisories/GHSA-rwvh-fw6r-pwvp
