CVE-2019-5419
Description
There is a possible denial of service vulnerability in Action View (Rails) <5.2.2.1, <5.1.6.2, <5.0.7.2, <4.2.11.1 where specially crafted accept headers can cause action view to consume 100% cpu and make the server unresponsive.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
A specially crafted Accept header can cause a denial of service in Action View (Rails) versions prior to specific patches, leading to high CPU consumption.
Vulnerability
A denial of service vulnerability exists in Action View, a component of Ruby on Rails, in versions <5.2.2.1, <5.1.6.2, <5.0.7.2, and <4.2.11.1. The vulnerability is triggered by specially crafted Accept headers in HTTP requests, causing the server to consume 100% CPU and become unresponsive. The issue lies in how Action View parses and processes these headers, leading to a computational loop that exhausts server resources [4].
Exploitation
An attacker can exploit this vulnerability by sending a single HTTP request with a malformed or specially crafted Accept header to a Rails application running a vulnerable version. No authentication or prior access is required; the attacker only needs network connectivity to the target server. The crafted header causes Action View to enter a high-cost computation path, tying up the server's CPU resources and preventing it from handling legitimate requests [4].
Impact
Successful exploitation results in a denial of service (DoS) condition. The server becomes unresponsive due to 100% CPU consumption, affecting availability for all users. No data is exfiltrated or modified, but the service is effectively taken offline [4].
Mitigation
Upgrade to the patched versions: Action View >=5.2.2.1, >=5.1.6.2, >=5.0.7.2, or >=4.2.11.1. Red Hat issued security advisories (RHSA-2019:0796, RHSA-2019:1147, RHSA-2019:1149) offering updated packages for Red Hat Software Collections and Red Hat Enterprise Linux [1][2][3]. Alternatively, deploy a reverse proxy or web application firewall (WAF) to filter or reject malicious Accept headers as a temporary workaround.
AI Insight generated on May 22, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
actionviewRubyGems | >= 4.0.0, < 4.2.11.1 | 4.2.11.1 |
actionviewRubyGems | >= 5.2.0, < 5.2.2.1 | 5.2.2.1 |
actionviewRubyGems | >= 5.1.0, < 5.1.6.2 | 5.1.6.2 |
actionviewRubyGems | >= 5.0.0, < 5.0.7.2 | 5.0.7.2 |
actionviewRubyGems | >= 6.0.0.beta1, < 6.0.0.beta3 | 6.0.0.beta3 |
Affected products
19- ghsa-coords18 versionspkg:gem/actionviewpkg:rpm/opensuse/rmt-server&distro=openSUSE%20Leap%2015.0pkg:rpm/opensuse/rmt-server&distro=openSUSE%20Leap%2015.1pkg:rpm/opensuse/rmt-server&distro=openSUSE%20Leap%2015.2pkg:rpm/opensuse/rmt-server&distro=openSUSE%20Tumbleweedpkg:rpm/opensuse/rubygem-actionpack-5_1&distro=openSUSE%20Leap%2015.0pkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015-ESPOSpkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015-LTSSpkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Public%20Cloud%2015%20SP1pkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Public%20Cloud%2015%20SP2pkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Server%20Applications%2015pkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Server%20Applications%2015%20SP1pkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Server%20Applications%2015%20SP2pkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20Server%2015-LTSSpkg:rpm/suse/rmt-server&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015pkg:rpm/suse/rubygem-actionpack-4_2&distro=SUSE%20Enterprise%20Storage%204pkg:rpm/suse/rubygem-actionpack-4_2&distro=SUSE%20OpenStack%20Cloud%207pkg:rpm/suse/rubygem-actionpack-4_2&distro=SUSE%20OpenStack%20Cloud%20Crowbar%208
>= 4.0.0, < 4.2.11.1+ 17 more
- (no CPE)range: >= 4.0.0, < 4.2.11.1
- (no CPE)range: < 2.1.4-lp150.2.16.1
- (no CPE)range: < 2.3.1-lp151.2.3.1
- (no CPE)range: < 2.6.5-lp152.2.3.1
- (no CPE)range: < 2.6.13-1.1
- (no CPE)range: < 5.1.4-lp150.2.3.1
- (no CPE)range: < 2.6.5-3.34.1
- (no CPE)range: < 2.6.5-3.34.1
- (no CPE)range: < 2.3.1-3.3.3
- (no CPE)range: < 2.6.5-3.3.1
- (no CPE)range: < 2.1.4-3.17.1
- (no CPE)range: < 2.3.1-3.3.3
- (no CPE)range: < 2.6.5-3.3.1
- (no CPE)range: < 2.6.5-3.34.1
- (no CPE)range: < 2.6.5-3.34.1
- (no CPE)range: < 4.2.9-7.6.1
- (no CPE)range: < 4.2.9-7.6.1
- (no CPE)range: < 4.2.9-7.6.1
- Rails/https://github.com/rails/railsv5Range: 5.2.2.1
Patches
1f4c70c222218Only accept formats from registered mime types
3 files changed · +23 −6
actionpack/lib/action_dispatch/http/mime_negotiation.rb+5 −0 modified@@ -79,6 +79,11 @@ def formats else [Mime[:html]] end + + v = v.select do |format| + format.symbol || format.ref == "*/*" + end + set_header k, v end end
actionpack/test/controller/mime/respond_to_test.rb+6 −4 modified@@ -125,7 +125,7 @@ def using_non_conflicting_nested_js_then_js def custom_type_handling respond_to do |type| type.html { render body: "HTML" } - type.custom("application/crazy-xml") { render body: "Crazy XML" } + type.custom("application/fancy-xml") { render body: "Fancy XML" } type.all { render body: "Nothing" } end end @@ -314,12 +314,14 @@ def setup @request.host = "www.example.com" Mime::Type.register_alias("text/html", :iphone) Mime::Type.register("text/x-mobile", :mobile) + Mime::Type.register("application/fancy-xml", :fancy_xml) end def teardown super Mime::Type.unregister(:iphone) Mime::Type.unregister(:mobile) + Mime::Type.unregister(:fancy_xml) end def test_html @@ -489,10 +491,10 @@ def test_synonyms end def test_custom_types - @request.accept = "application/crazy-xml" + @request.accept = "application/fancy-xml" get :custom_type_handling - assert_equal "application/crazy-xml", @response.content_type - assert_equal "Crazy XML", @response.body + assert_equal "application/fancy-xml", @response.content_type + assert_equal "Fancy XML", @response.body @request.accept = "text/html" get :custom_type_handling
actionpack/test/controller/new_base/content_negotiation_test.rb+12 −2 modified@@ -20,9 +20,19 @@ class TestContentNegotiation < Rack::TestCase assert_body "Hello world */*!" end - test "Not all mimes are converted to symbol" do + test "A js or */* Accept header will return HTML" do + get "/content_negotiation/basic/hello", headers: { "HTTP_ACCEPT" => "text/javascript, */*" } + assert_body "Hello world text/html!" + end + + test "A js or */* Accept header on xhr will return HTML" do + get "/content_negotiation/basic/hello", headers: { "HTTP_ACCEPT" => "text/javascript, */*" }, xhr: true + assert_body "Hello world text/javascript!" + end + + test "Unregistered mimes are ignored" do get "/content_negotiation/basic/all", headers: { "HTTP_ACCEPT" => "text/plain, mime/another" } - assert_body '[:text, "mime/another"]' + assert_body '[:text]' end end end
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
20- lists.opensuse.org/opensuse-security-announce/2019-05/msg00011.htmlghsavendor-advisoryx_refsource_SUSEWEB
- lists.opensuse.org/opensuse-security-announce/2019-06/msg00025.htmlghsavendor-advisoryx_refsource_SUSEWEB
- lists.opensuse.org/opensuse-security-announce/2019-08/msg00001.htmlghsavendor-advisoryx_refsource_SUSEWEB
- access.redhat.com/errata/RHSA-2019:0796ghsavendor-advisoryx_refsource_REDHATWEB
- access.redhat.com/errata/RHSA-2019:1147ghsavendor-advisoryx_refsource_REDHATWEB
- access.redhat.com/errata/RHSA-2019:1149ghsavendor-advisoryx_refsource_REDHATWEB
- access.redhat.com/errata/RHSA-2019:1289ghsavendor-advisoryx_refsource_REDHATWEB
- github.com/advisories/GHSA-m63j-wh5w-c252ghsaADVISORY
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/Y43636TH4D6T46IC6N2RQVJTRFJAAYGA/mitrevendor-advisoryx_refsource_FEDORA
- nvd.nist.gov/vuln/detail/CVE-2019-5419ghsaADVISORY
- www.openwall.com/lists/oss-security/2019/03/22/1ghsamailing-listx_refsource_MLISTWEB
- github.com/rails/rails/commit/f4c70c2222180b8d9d924f00af0c7fd632e26715ghsaWEB
- github.com/rails/rails/pull/35708ghsaWEB
- github.com/rubysec/ruby-advisory-db/blob/master/gems/actionview/CVE-2019-5419.ymlghsaWEB
- groups.google.com/forum/ghsaWEB
- groups.google.com/forum/mitrex_refsource_CONFIRM
- lists.debian.org/debian-lts-announce/2019/03/msg00042.htmlghsamailing-listx_refsource_MLISTWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/Y43636TH4D6T46IC6N2RQVJTRFJAAYGAghsaWEB
- weblog.rubyonrails.org/2019/3/13/Rails-4-2-5-1-5-1-6-2-have-been-releasedghsaWEB
- weblog.rubyonrails.org/2019/3/13/Rails-4-2-5-1-5-1-6-2-have-been-released/mitrex_refsource_CONFIRM
News mentions
0No linked articles in our index yet.