Skip to main content
CVE-2026-126071VulnerabilityPublished

Active Storage proxy mode · Active Storage: Possible DoS vulnerability

Affects activestorageSource GCVE Database

0
Compare
Authoritative record:CVE-2026-126071· Medium 5.3

Not known to be exploited · CVSS 5.3 Medium : upgrade to 8.1.4.1 when convenient.

Data as of 10 Nov 2026, 22:34 UTC

CVSS 3.1 base score
5.3Medium
How severe the flaw is on the 0–10 CVSS scale.

Thin evidence

One scorer or none
CVSS scores by source
CNA (GitHub_M)CVSS 3.15.3
Patch
Available – fixed in 8.1.4.1, 8.0.5.2
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 10 Nov 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 10 Nov 2026.

What to do

Upgrade activestorage to 8.1.4.1; activestorage to 8.0.5.2.

Affected software

ProductAffectedFixed in
RubyGemsactivestorageAffected
  • >=8.1.0.beta1 <8.1.4.1
Fixed in
  • 8.1.4.1
RubyGemsactivestorageAffected
  • >=8.0.0.beta1 <8.0.5.2
Fixed in
  • 8.0.5.2

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

Description

### Impact When Active Storage serves a file through its proxy controllers, `ActiveStorage::Streaming#send_blob_stream` handles an error from the storage service by calling `head` to send a 404 or 500 response. If the error occurs after the first chunk has been written, the response is already committed, and `head` replaces the response body while the server is still reading the original `ActionController::Live` buffer. That buffer is never closed, so the server thread handling the request blocks until the process restarts. Repeated failed downloads could exhaust the server's threads, possibly resulting in a DoS vulnerability. Applications are affected when they store files on a service that streams a download in several requests, such as Amazon S3, an S3-compatible service or Google Cloud Storage, and draw Active Storage's default routes. The proxy routes are drawn whether or not proxy mode is the default for the application. A file deleted while it is being served, or any other storage error partway through a download, triggers the condition. ### Details A storage error raised before the response is committed still produces a 404 or 500 response. After the fix, a storage error raised after the response is committed is re-raised instead, so the server closes the streamed response and releases the thread; the client receives a truncated body, and the exception reaches the application's error reporting. ### 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/3c67a693fb21870ecb1222e3da59d5c491a62009.patch - 8.0: https://github.com/rails/rails/commit/655b4442de136a3701334607f634d698bf9d5b82.patch ### Credit This issue was found by the Anthropic OSS Scanner (ANT-2026-FMPUMYTB).

References

Community reviews

Loading reviews…