{"id":"CVE-2026-126072","summary":"Action Pack: Possible DoS vulnerability in Action Controller Live streaming","details":"Action Pack is a framework for handling and responding to web requests. Prior to 8.1.4.1 and 8.0.5.2, 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. This issue is fixed in versions 8.1.4.1 and 8.0.5.2.","aliases":["GHSA-rwvh-fw6r-pwvp"],"modified":"2026-11-11T10:47:26.548665807Z","published":"2026-11-10T20:44:52.734Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-833"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/126xxx/CVE-2026-126072.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/126xxx/CVE-2026-126072.json"},{"type":"FIX","url":"https://github.com/rails/rails/commit/27ad18ed5900dee28ba20e9c6fc718ff751fa215"},{"type":"FIX","url":"https://github.com/rails/rails/commit/ccbfc09690fef05fdd2a9969c917a71b92cc98fc"},{"type":"WEB","url":"https://github.com/rails/rails/releases/tag/v8.0.5.2"},{"type":"WEB","url":"https://github.com/rails/rails/releases/tag/v8.1.4.1"},{"type":"ADVISORY","url":"https://github.com/rails/rails/security/advisories/GHSA-rwvh-fw6r-pwvp"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126072"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/rails/rails","events":[{"introduced":"1cdd190a25e483b65f1f25bbd0f13a25d696b461"},{"fixed":"3f290b759c8e2ffe7c257951b1255740751355e4"},{"introduced":"0"},{"fixed":"235c597b100321b6bd2d62f8df63707f42b25b2d"},{"fixed":"27ad18ed5900dee28ba20e9c6fc718ff751fa215"},{"fixed":"ccbfc09690fef05fdd2a9969c917a71b92cc98fc"}],"database_specific":{"extracted_events":[{"range":[{"introduced":"8.1"},{"fixed":"8.1.4.1"}],"source":"AFFECTED_FIELD","strategy":"StringRangeExpression"},{"source":"AFFECTED_FIELD","strategy":"StringRangeExpression","range":[{"introduced":"0"},{"fixed":"8.0.5.2"}]},{"range":[{"fixed":"27ad18ed5900dee28ba20e9c6fc718ff751fa215"}],"source":"REFERENCES_COMMIT"},{"source":"REFERENCES_COMMIT","range":[{"fixed":"ccbfc09690fef05fdd2a9969c917a71b92cc98fc"}]},{"original_tag":"v8.0.5.2","range":[{"fixed":"235c597b100321b6bd2d62f8df63707f42b25b2d"}],"source":"REFERENCES_TAG"},{"original_tag":"v8.1.4.1","range":[{"fixed":"3f290b759c8e2ffe7c257951b1255740751355e4"}],"source":"REFERENCES_TAG"}]}}],"versions":["v8.0.5.1","v8.1.4","v8.0.5","v8.1.3","v8.0.4","v8.1.2","v8.1.1","v8.1.0","v8.0.3","v8.0.2","v8.0.1","v8.0.0","v8.0.0.rc2","v8.0.0.rc1","v8.0.0.beta1","v7.1.0.beta1","v7.0.0.alpha2","v7.0.0.alpha1","v6.1.0.rc1","v6.0.0.beta2","v6.0.0.beta1","v5.1.0.beta1","v5.0.0.beta4","v5.0.0.beta2","v5.0.0.beta1","v4.2.0.beta1","v4.0.0.rc1","v4.0.0.beta1","v3.2.0.rc1","v3.1.0.rc1","v3.1.0.beta1","v3.0.0.beta3","v3.0.0.beta.3","v2.0.1","v2.0.0","v2.0.0_RC2","v2.0.0_RC1","v2.0.0_PR","v1.1.1","v1.1.0","v1.1.0_RC1","v0.14.3","v0.14.1","v0.13.1","v0.13.0","v0.12.0","v0.11.1","v0.11.0","v0.10.1","v0.10.0","v0.9.5","v0.9.4.1","v0.9.4","v0.9.3","v0.9.2","v0.9.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-126072.json"}}],"schema_version":"1.9.2","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}