{"id":"CVE-2022-24790","aliases":["DEBIAN-CVE-2022-24790","DLA-3083-1","DSA-5146-1","EUVD-2022-1439","GHSA-h99w-9q5r-gjq9","OESA-2024-2250","OESA-2024-2252","OESA-2024-2259","RHSA-2022:8532","RHSA-2023:1486","SUSE-SU-2022:3338-1","SUSE-SU-2022:3339-1","SUSE-SU-2022:3571-1","UBUNTU-CVE-2022-24790","USN-6682-1","openSUSE-SU-2024:12032-1","openSUSE-SU-2024:12592-1","openSUSE-SU-2024:13166-1","openSUSE-SU-2024:13721-1"],"status":"published","title":"HTTP Request Smuggling in puma","description":"Puma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.","severity":{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.02191,"percentile":0.82682,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-444"],"published":"2022-03-30T21:48:50Z","modified":"2026-11-03T06:02:15Z","fixes":[{"ecosystem":"RubyGems","package":"puma","fixed_in":["5.6.4","4.3.12"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"puma","fixed_in":["5.6.4-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"puma","fixed_in":["5.6.4-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"puma","fixed_in":["5.6.4-1"],"sources":["osv"]},{"ecosystem":"Red Hat:satellite:6.9::el7","package":"tfm-rubygem-puma","fixed_in":["0:4.3.12-1.el7sat"],"sources":["osv"]},{"ecosystem":"Red Hat:satellite:6.9::el7","package":"tfm-rubygem-puma-debuginfo","fixed_in":["0:4.3.12-1.el7sat"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15","package":"rubygem-puma","fixed_in":["4.3.12-150000.3.9.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP1","package":"rubygem-puma","fixed_in":["4.3.12-150000.3.9.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP2","package":"rubygem-puma","fixed_in":["4.3.12-150000.3.9.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP3","package":"rubygem-puma","fixed_in":["4.3.12-150000.3.9.1"],"sources":["osv"]},{"ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP4","package":"rubygem-puma","fixed_in":["4.3.12-150000.3.9.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 15.3","package":"rubygem-puma","fixed_in":["4.3.12-150000.3.9.1"],"sources":["osv"]},{"ecosystem":"openSUSE:Leap 15.4","package":"rubygem-puma","fixed_in":["4.3.12-150000.3.9.1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:20.04:LTS","package":"puma","fixed_in":["3.12.4-1ubuntu2+esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:22.04:LTS","package":"puma","fixed_in":["5.5.2-2ubuntu2+esm1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"rubygem-puma-4","fixed_in":["4.3.12-1.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"RubyGems","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.0.0"},{"fixed":"5.6.4"}]}]},{"source":"ghsa","ecosystem":"RubyGems","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.4-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.4-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.4-1"}]}]},{"source":"osv","ecosystem":"Debian:10","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.12.0-2+deb10u3"}]}],"versions":["3.12.0-2","3.12.0-2+deb10u1","3.12.0-2+deb10u2"],"bundled":4},{"source":"osv","ecosystem":"Debian:11","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.8-1+deb11u2"}]}],"versions":["4.3.8-1","4.3.8-1+deb11u1"],"bundled":3},{"source":"osv","ecosystem":"RubyGems","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.0.0"},{"fixed":"5.6.4"}]}],"versions":["5.0.0","5.0.1","5.0.2","5.0.3","5.0.4","5.1.0","5.1.1","5.2.0","5.2.1","5.2.2","5.3.0","5.3.1","5.3.2","5.4.0","5.5.0","5.5.1","5.5.2","5.6.0","5.6.1","5.6.2"]},{"source":"osv","ecosystem":"RubyGems","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12"}]}],"versions":["0.8.0","0.8.1","0.8.2","0.9.0","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","1.0.0","1.1.0","1.1.1","1.2.0","1.2.1","1.2.2","1.3.0","1.3.1","1.4.0","1.5.0","1.6.0","1.6.1","1.6.2","1.6.3","2.0.0","2.0.0.b1","2.0.0.b2","2.0.0.b3","2.0.0.b4","2.0.0.b5","2.0.0.b6","2.0.0.b7","2.0.1","2.1.0","2.1.1","2.10.0","2.10.1","2.10.2","2.11.0","2.11.1","2.11.2","2.11.3","2.12.0","2.12.1","2.12.2","2.12.3","2.13.0","2.13.1","2.13.2","2.13.3","2.13.4","2.14.0","2.15.0","2.15.1","2.15.2","2.15.3","2.16.0","2.2.0","2.2.1","2.2.2","2.3.0","2.3.1","2.3.2","2.4.0","2.4.1","2.5.0","2.5.1","2.6.0","2.7.0","2.7.1","2.8.0","2.8.1","2.8.2","2.9.0","2.9.1","2.9.2","3.0.0","3.0.0.rc1","3.0.1","3.0.2","3.1.0","3.1.1","3.10.0","3.11.0","3.11.1","3.11.2","3.11.3","3.11.4","3.12.0","3.12.1","3.12.2","3.12.4","3.12.5","3.12.6","3.2.0","3.3.0","3.4.0","3.5.0","3.5.1","3.5.2","3.6.0","3.6.1","3.6.2","3.7.0","3.7.1","3.8.0","3.8.1","3.8.2","3.9.0","3.9.1","4.0.0","4.0.1","4.1.0","4.1.1","4.2.0","4.2.1","4.3.0","4.3.1","4.3.10","4.3.11","4.3.3","4.3.4","4.3.5","4.3.6","4.3.7","4.3.8","4.3.9"]},{"source":"osv","ecosystem":"openEuler:22.03-LTS-SP1","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.5-3.oe2203sp1"}]}],"bundled":4},{"source":"osv","ecosystem":"openEuler:22.03-LTS-SP4","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.5-3.oe2203sp4"}]}],"bundled":4},{"source":"osv","ecosystem":"openEuler:22.03-LTS-SP3","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.5-3.oe2203sp3"}]}],"bundled":4},{"source":"osv","ecosystem":"Red Hat:satellite:6.9::el7","package":"tfm-rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:4.3.12-1.el7sat"}]}]},{"source":"osv","ecosystem":"Red Hat:satellite:6.9::el7","package":"tfm-rubygem-puma-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:4.3.12-1.el7sat"}]}]},{"source":"osv","ecosystem":"Red Hat:storage:3.5:wa:el7","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:4.3.12-1.el7rhgs"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:storage:3.5:wa:el7","package":"rubygem-puma-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:4.3.12-1.el7rhgs"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:storage:3.5:wa:el7","package":"rubygem-puma-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:4.3.12-1.el7rhgs"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:storage:3.5:wa:el7","package":"rubygem-rack","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.2.4-1.el7rhgs"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:storage:3.5:wa:el7","package":"rubygem-rack-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.2.4-1.el7rhgs"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:storage:3.5:wa:el7","package":"grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:5.2.4-6.el7rhgs"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:storage:3.5:wa:el7","package":"rubygem-tzinfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.2.10-1.el7rhgs"}]}],"bundled":5},{"source":"osv","ecosystem":"Red Hat:storage:3.5:wa:el7","package":"rubygem-tzinfo-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.2.10-1.el7rhgs"}]}],"bundled":5},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"ardana-ansible","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.0+git.1660773729.3789a6d-3.85.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"ardana-cobbler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.0+git.1660773402.d845a45-3.47.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.7.4-4.23.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"openstack-heat-templates","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.0.0+git.1654529662.75fa04a-3.27.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"openstack-murano","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.2~dev3-3.12.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"openstack-murano-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.2~dev3-3.12.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"python-Django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.29-3.42.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"rabbitmq-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.16-3.13.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"venv-openstack-heat","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0.8~dev22-12.45.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"venv-openstack-horizon-hpe","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"12.0.5~dev6-14.48.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:HPE Helion OpenStack 8","package":"venv-openstack-murano","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.2~dev3-12.38.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"ardana-ansible","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.0+git.1660773729.3789a6d-3.85.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"ardana-cobbler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.0+git.1660773402.d845a45-3.47.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.7.4-4.23.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"openstack-heat-templates","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.0.0+git.1654529662.75fa04a-3.27.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"openstack-murano","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.2~dev3-3.12.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"openstack-murano-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.2~dev3-3.12.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"python-Django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.29-3.42.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"rabbitmq-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.16-3.13.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"venv-openstack-heat","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0.8~dev22-12.45.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"venv-openstack-horizon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"12.0.5~dev6-14.48.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 8","package":"venv-openstack-murano","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.2~dev3-12.38.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 8","package":"grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.7.4-4.23.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 8","package":"openstack-heat-templates","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.0.0+git.1654529662.75fa04a-3.27.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 8","package":"openstack-murano","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.2~dev3-3.12.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 8","package":"openstack-murano-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.2~dev3-3.12.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 8","package":"python-Django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.29-3.42.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 8","package":"rabbitmq-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.16-3.13.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 8","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.16.0-3.18.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"ardana-ansible","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0+git.1660748476.c118d23-3.32.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"ardana-cobbler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0+git.1660747489.119efcd-3.19.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"ardana-tempest","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"9.0+git.1651855288.a2341ad-3.22.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.7.4-3.29.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"openstack-heat-templates","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.0.0+git.1654529662.75fa04a7-3.15.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"openstack-horizon-plugin-gbp-ui","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"14.0.1~dev4-3.12.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"openstack-neutron-gbp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"14.0.1~dev46-3.34.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"openstack-nova","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"18.3.1~dev92-3.43.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"python-Django1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.29-3.40.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"rabbitmq-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.16-4.3.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"venv-openstack-heat","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"11.0.4~dev4-3.37.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"venv-openstack-horizon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"14.1.1~dev11-4.41.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"venv-openstack-neutron","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"13.0.8~dev206-6.41.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud 9","package":"venv-openstack-nova","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"18.3.1~dev92-3.41.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"grafana","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.7.4-3.29.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"openstack-heat-templates","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.0.0+git.1654529662.75fa04a7-3.15.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"openstack-horizon-plugin-gbp-ui","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"14.0.1~dev4-3.12.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"openstack-neutron-gbp","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"14.0.1~dev46-3.34.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"openstack-nova","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"18.3.1~dev92-3.43.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"python-Django1","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.11.29-3.40.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"rabbitmq-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.6.16-4.3.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:OpenStack Cloud Crowbar 9","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.16.0-4.18.1"}]}],"bundled":6},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12-150000.3.9.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP1","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12-150000.3.9.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP2","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12-150000.3.9.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP3","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12-150000.3.9.1"}]}]},{"source":"osv","ecosystem":"SUSE:Linux Enterprise High Availability Extension 15 SP4","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12-150000.3.9.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Leap 15.3","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12-150000.3.9.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Leap 15.4","package":"rubygem-puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12-150000.3.9.1"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.12.4-1ubuntu2+esm1"}]}],"versions":["3.12.0-2ubuntu1","3.12.0-4ubuntu1","3.12.4-1ubuntu2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.5.2-2ubuntu2+esm1"}]}],"versions":["4.3.6-1ubuntu4","5.5.2-2ubuntu2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.12.4-1ubuntu2+esm1"}]}],"versions":["3.12.0-2ubuntu1","3.12.0-4ubuntu1","3.12.4-1ubuntu2"],"bundled":6},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"puma","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.5.2-2ubuntu2+esm1"}]}],"versions":["4.3.6-1ubuntu4","5.5.2-2ubuntu2"],"bundled":6},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"rubygem-puma-4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.12-1.1"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"rubygem-puma-5","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.5-1.1"}]}],"bundled":5},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"ruby3.2-rubygem-puma-5","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.5-1.7"}]}],"bundled":5},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"rubygem-puma-5","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"5.6.8-1.1"}]}],"bundled":5}],"products":[{"vendor":"debian","product":"debian_linux"},{"vendor":"fedoraproject","product":"fedora"},{"vendor":"puma","product":"puma"}],"references":[{"url":"https://github.com/puma/puma/security/advisories/GHSA-h99w-9q5r-gjq9","tags":["x_refsource_CONFIRM","x_transferred","Issue Tracking","Third Party Advisory","advisory","web","report"]},{"url":"https://github.com/puma/puma/commit/5bb7d202e24dec00a898dca4aa11db391d7787a5","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web","report"]},{"url":"https://www.debian.org/security/2022/dsa-5146","tags":["vendor-advisory","x_refsource_DEBIAN","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://security.gentoo.org/glsa/202208-28","tags":["vendor-advisory","x_refsource_GENTOO","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://lists.debian.org/debian-lts-announce/2022/08/msg00015.html","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","article","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/TUBFJ44NCKJ34LECZRAP4N5VL6USJSIB/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","advisory"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/L7NESIBFCNSR3XH7LXDPKVMSUBNUB43G/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","advisory"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/F6YWGIIKL7KKTS3ZOAYMYPC7D6WQ5OA5/","tags":["vendor-advisory","x_refsource_FEDORA","x_transferred","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-24790","tags":["advisory"]},{"url":"https://portswigger.net/web-security/request-smuggling","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/L7NESIBFCNSR3XH7LXDPKVMSUBNUB43G/"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/TUBFJ44NCKJ34LECZRAP4N5VL6USJSIB/"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/F6YWGIIKL7KKTS3ZOAYMYPC7D6WQ5OA5/"},{"url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/puma/CVE-2022-24790.yml","tags":["web"]},{"url":"https://github.com/advisories/GHSA-h99w-9q5r-gjq9"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/24xxx/CVE-2022-24790.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2022-24790","tags":["advisory"]},{"url":"https://github.com/puma/puma","tags":["package"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/F6YWGIIKL7KKTS3ZOAYMYPC7D6WQ5OA5","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/L7NESIBFCNSR3XH7LXDPKVMSUBNUB43G","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/TUBFJ44NCKJ34LECZRAP4N5VL6USJSIB","tags":["web"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2024-2250","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-40175","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-21647","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-45614","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2024-2252","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2024-2259","tags":["advisory"]},{"url":"https://access.redhat.com/errata/RHSA-2022:8532","tags":["advisory"]},{"url":"https://access.redhat.com/security/updates/classification/#important","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2038995","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2071616","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2074099","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2081560","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2091438","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2093829","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2098221","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2141348","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2022/rhsa-2022_8532.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2022-24790","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-24790","tags":["advisory","report"]},{"url":"https://access.redhat.com/errata/RHSA-2023:1486","tags":["advisory"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2099519","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2099524","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2105075","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2110551","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2023/rhsa-2023_1486.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2022-30122","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-30122","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-30122","tags":["advisory"]},{"url":"https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rack/CVE-2022-30122.yml","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2022-30123","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-30123","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-30123","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-wq4h-7r42-5hrr","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2022-31129","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-31129","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-31129","tags":["advisory"]},{"url":"https://github.com/moment/moment/security/advisories/GHSA-wc69-rhjr-hc9g","tags":["article"]},{"url":"https://access.redhat.com/security/cve/CVE-2022-31163","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2022-31163","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2022-31163","tags":["advisory"]},{"url":"https://github.com/tzinfo/tzinfo/security/advisories/GHSA-5cm2-9h8c-rvfx","tags":["article"]},{"url":"https://www.suse.com/support/update/announcement/2022/suse-su-20223338-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1157665","tags":["report"]},{"url":"https://bugzilla.suse.com/1191454","tags":["report"]},{"url":"https://bugzilla.suse.com/1193597","tags":["report"]},{"url":"https://bugzilla.suse.com/1197818","tags":["report"]},{"url":"https://bugzilla.suse.com/1198398","tags":["report"]},{"url":"https://bugzilla.suse.com/1201186","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2019-11287","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-1734","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-39226","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-44716","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-24790","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-28346","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2022-34265","tags":["web"]},{"url":"https://www.suse.com/support/update/announcement/2022/suse-su-20223339-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1164139","tags":["report"]},{"url":"https://www.suse.com/support/update/announcement/2022/suse-su-20223571-1/","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2022-24790","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-6682-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2020-11076","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2020-11077","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2022-23634","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-40175","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2024-21647","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2019-16770","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2020-11076","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-29509","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2021-41136","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2022-24790","title":"HTTP Request Smuggling in puma","description":"Puma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.","status":"published","published":"2022-03-30T21:50:09Z","modified":"2025-04-23T18:43:11.083Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"cna"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T14:34:34.576287Z"}],"euvd":[{"id":"EUVD-2022-1439","description":"Puma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.","status":"published","published":"2022-03-30T21:50:09Z","modified":"2025-04-23T18:43:11Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T20:52:07.950001Z"}],"ghsa":[{"id":"GHSA-h99w-9q5r-gjq9","title":"Puma vulnerable to HTTP Request Smuggling","description":"When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma.\n\nThe following vulnerabilities are addressed by this advisory:\n- Lenient parsing of `Transfer-Encoding` headers, when unsupported encodings should be rejected and the final encoding must be `chunked`.\n- Lenient parsing of malformed `Content-Length` headers and chunk sizes, when only digits and hex digits should be allowed.\n- Lenient parsing of duplicate `Content-Length` headers, when they should be rejected.\n- Lenient parsing of the ending of chunked segments, when they should end with `\\r\\n`.\n\nThe vulnerability has been fixed in 5.6.4 and 4.3.12. When deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard. \n\nThese proxy servers are known to have \"good\" behavior re: this standard and upgrading Puma may not be necessary. Users are encouraged to validate for themselves.\n\n- Nginx (latest)\n- Apache (latest)\n- Haproxy 2.5+\n- Caddy (latest)\n- Traefik (latest)","status":"published","published":"2022-03-30T21:48:50Z","modified":"2023-05-04T19:51:55Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T14:36:52.310293Z"}],"nvd":[{"id":"CVE-2022-24790","description":"Puma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.","status":"published","published":"2022-03-30T22:15:08.5Z","modified":"2026-06-17T04:32:31.47Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:N/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T14:07:14.706146Z"}],"osv":[{"id":"CVE-2022-24790","title":"HTTP Request Smuggling in puma","description":"Puma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.","status":"published","published":"2022-03-30T21:50:09Z","modified":"2026-10-28T02:31:10.934056713Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T15:44:24.428403Z"},{"id":"GHSA-h99w-9q5r-gjq9","title":"Puma vulnerable to HTTP Request Smuggling","description":"When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma.\n\nThe following vulnerabilities are addressed by this advisory:\n- Lenient parsing of `Transfer-Encoding` headers, when unsupported encodings should be rejected and the final encoding must be `chunked`.\n- Lenient parsing of malformed `Content-Length` headers and chunk sizes, when only digits and hex digits should be allowed.\n- Lenient parsing of duplicate `Content-Length` headers, when they should be rejected.\n- Lenient parsing of the ending of chunked segments, when they should end with `\\r\\n`.\n\nThe vulnerability has been fixed in 5.6.4 and 4.3.12. When deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard. \n\nThese proxy servers are known to have \"good\" behavior re: this standard and upgrading Puma may not be necessary. Users are encouraged to validate for themselves.\n\n- Nginx (latest)\n- Apache (latest)\n- Haproxy 2.5+\n- Caddy (latest)\n- Traefik (latest)","status":"published","published":"2022-03-30T21:48:50Z","modified":"2024-02-16T07:55:51.665412Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-444"],"updated_at":"2026-11-02T15:46:48.920784Z"},{"id":"OESA-2024-2250","title":"rubygem-puma security update","description":"A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.\r\n\r\nSecurity Fix(es):\r\n\r\nPuma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.(CVE-2022-24790)\r\n\r\nPuma is a Ruby/Rack web server built for parallelism. Prior to versions 6.3.1 and 5.6.7, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies and zero-length Content-Length headers in a way that allowed HTTP request smuggling. Severity of this issue is highly dependent on the nature of the web site using puma is. This could be caused by either incorrect parsing of trailing fields in chunked transfer encoding bodies or by parsing of blank/zero-length Content-Length headers. Both issues have been addressed and this vulnerability has been fixed in versions 6.3.1 and 5.6.7. Users are advised to upgrade. There are no known workarounds for this vulnerability.(CVE-2023-40175)\r\n\r\nPuma is a web server for Ruby/Rack applications built for parallelism. Prior to version 6.4.2, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies in a way that allowed HTTP request smuggling. Fixed versions limits the size of chunk extensions. Without this limit, an attacker could cause unbounded resource (CPU, network bandwidth) consumption. This vulnerability has been fixed in versions 6.4.2 and 5.6.8.\r\n\r\n(CVE-2024-21647)\r\n\r\nPuma is a Ruby/Rack web server built for parallelism. In affected versions clients could clobber values set by intermediate proxies (such as X-Forwarded-For) by providing a underscore version of the same header (X-Forwarded_For). Any users relying on proxy set variables is affected. v6.4.3/v5.6.9 now discards any headers using underscores if the non-underscore version also exists. Effectively, allowing the proxy defined headers to always win. Users are advised to upgrade. Nginx has a underscores_in_headers configuration variable to discard these headers at the proxy level as a mitigation. Any users that are implicitly trusting the proxy defined headers for security should immediately cease doing so until upgraded to the fixed versions.(CVE-2024-45614)","status":"published","published":"2024-10-12T11:07:43Z","modified":"2026-08-18T01:17:35.625272623Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:52:41.595342Z"},{"id":"OESA-2024-2252","title":"rubygem-puma security update","description":"A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.\r\n\r\nSecurity Fix(es):\r\n\r\nPuma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.(CVE-2022-24790)\r\n\r\nPuma is a Ruby/Rack web server built for parallelism. Prior to versions 6.3.1 and 5.6.7, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies and zero-length Content-Length headers in a way that allowed HTTP request smuggling. Severity of this issue is highly dependent on the nature of the web site using puma is. This could be caused by either incorrect parsing of trailing fields in chunked transfer encoding bodies or by parsing of blank/zero-length Content-Length headers. Both issues have been addressed and this vulnerability has been fixed in versions 6.3.1 and 5.6.7. Users are advised to upgrade. There are no known workarounds for this vulnerability.(CVE-2023-40175)\r\n\r\nPuma is a web server for Ruby/Rack applications built for parallelism. Prior to version 6.4.2, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies in a way that allowed HTTP request smuggling. Fixed versions limits the size of chunk extensions. Without this limit, an attacker could cause unbounded resource (CPU, network bandwidth) consumption. This vulnerability has been fixed in versions 6.4.2 and 5.6.8.\r\n\r\n(CVE-2024-21647)\r\n\r\nPuma is a Ruby/Rack web server built for parallelism. In affected versions clients could clobber values set by intermediate proxies (such as X-Forwarded-For) by providing a underscore version of the same header (X-Forwarded_For). Any users relying on proxy set variables is affected. v6.4.3/v5.6.9 now discards any headers using underscores if the non-underscore version also exists. Effectively, allowing the proxy defined headers to always win. Users are advised to upgrade. Nginx has a underscores_in_headers configuration variable to discard these headers at the proxy level as a mitigation. Any users that are implicitly trusting the proxy defined headers for security should immediately cease doing so until upgraded to the fixed versions.(CVE-2024-45614)","status":"published","published":"2024-10-12T11:07:43Z","modified":"2026-08-18T01:17:35.651622839Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:52:41.595342Z"},{"id":"OESA-2024-2259","title":"rubygem-puma security update","description":"A simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.\r\n\r\nSecurity Fix(es):\r\n\r\nPuma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.(CVE-2022-24790)\r\n\r\nPuma is a Ruby/Rack web server built for parallelism. Prior to versions 6.3.1 and 5.6.7, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies and zero-length Content-Length headers in a way that allowed HTTP request smuggling. Severity of this issue is highly dependent on the nature of the web site using puma is. This could be caused by either incorrect parsing of trailing fields in chunked transfer encoding bodies or by parsing of blank/zero-length Content-Length headers. Both issues have been addressed and this vulnerability has been fixed in versions 6.3.1 and 5.6.7. Users are advised to upgrade. There are no known workarounds for this vulnerability.(CVE-2023-40175)\r\n\r\nPuma is a web server for Ruby/Rack applications built for parallelism. Prior to version 6.4.2, puma exhibited incorrect behavior when parsing chunked transfer encoding bodies in a way that allowed HTTP request smuggling. Fixed versions limits the size of chunk extensions. Without this limit, an attacker could cause unbounded resource (CPU, network bandwidth) consumption. This vulnerability has been fixed in versions 6.4.2 and 5.6.8.\r\n\r\n(CVE-2024-21647)\r\n\r\nPuma is a Ruby/Rack web server built for parallelism. In affected versions clients could clobber values set by intermediate proxies (such as X-Forwarded-For) by providing a underscore version of the same header (X-Forwarded_For). Any users relying on proxy set variables is affected. v6.4.3/v5.6.9 now discards any headers using underscores if the non-underscore version also exists. Effectively, allowing the proxy defined headers to always win. Users are advised to upgrade. Nginx has a underscores_in_headers configuration variable to discard these headers at the proxy level as a mitigation. Any users that are implicitly trusting the proxy defined headers for security should immediately cease doing so until upgraded to the fixed versions.(CVE-2024-45614)","status":"published","published":"2024-10-18T11:07:44Z","modified":"2026-08-18T01:17:35.54796702Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:52:41.595342Z"},{"id":"RHSA-2022:8532","title":"Red Hat Security Advisory: Satellite 6.9.10 Async Security Update","status":"published","published":"2024-09-16T09:41:06Z","modified":"2026-06-26T11:01:59Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T15:53:10.139266Z"},{"id":"RHSA-2023:1486","title":"Red Hat Security Advisory: Red Hat Gluster Storage web-admin-build security update","status":"published","published":"2024-09-30T14:42:50Z","modified":"2026-10-13T10:03:57Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:53:10.611604Z"},{"id":"UBUNTU-CVE-2022-24790","description":"Puma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.","status":"published","published":"2022-03-30T22:15:00Z","modified":"2026-02-04T04:32:46.605034Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N","level":"high"}],"updated_at":"2026-11-02T16:53:53.13624Z"},{"id":"DEBIAN-CVE-2022-24790","description":"Puma is a simple, fast, multi-threaded, parallel HTTP 1.1 server for Ruby/Rack applications. When using Puma behind a proxy that does not properly validate that the incoming HTTP request matches the RFC7230 standard, Puma and the frontend proxy may disagree on where a request starts and ends. This would allow requests to be smuggled via the front-end proxy to Puma. The vulnerability has been fixed in 5.6.4 and 4.3.12. Users are advised to upgrade as soon as possible. Workaround: when deploying a proxy in front of Puma, turning on any and all functionality to make sure that the request matches the RFC7230 standard.","status":"published","published":"2022-03-30T22:15:08.5Z","modified":"2026-11-03T06:02:15.078387776Z","updated_at":"2026-11-03T06:44:05.456691Z"},{"id":"DLA-3083-1","title":"puma - security update","status":"published","published":"2022-08-28T00:00:00Z","modified":"2026-03-09T01:20:58.365317Z","updated_at":"2026-11-02T15:46:11.189256Z"},{"id":"DSA-5146-1","title":"puma - security update","status":"published","published":"2022-05-24T00:00:00Z","modified":"2026-03-09T02:09:47.089376Z","updated_at":"2026-11-02T15:46:17.543497Z"},{"id":"openSUSE-SU-2024:12032-1","title":"ruby3.1-rubygem-puma-4-4.3.12-1.1 on GA media","description":"These are all security issues fixed in the ruby3.1-rubygem-puma-4-4.3.12-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:58:25.988584Z","updated_at":"2026-11-02T16:58:35.485255Z"},{"id":"openSUSE-SU-2024:12592-1","title":"ruby3.1-rubygem-puma-5-5.6.5-1.1 on GA media","description":"These are all security issues fixed in the ruby3.1-rubygem-puma-5-5.6.5-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:28:46.589421Z","updated_at":"2026-11-02T16:58:35.751245Z"},{"id":"openSUSE-SU-2024:13166-1","title":"ruby3.2-rubygem-puma-5-5.6.5-1.7 on GA media","description":"These are all security issues fixed in the ruby3.2-rubygem-puma-5-5.6.5-1.7 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:41:59.915068Z","updated_at":"2026-11-02T16:58:36.025801Z"},{"id":"openSUSE-SU-2024:13721-1","title":"ruby3.3-rubygem-puma-5-5.6.8-1.1 on GA media","description":"These are all security issues fixed in the ruby3.3-rubygem-puma-5-5.6.8-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T02:39:28.538005Z","updated_at":"2026-11-02T16:58:36.327643Z"},{"id":"SUSE-SU-2022:3338-1","title":"Security update for ardana-ansible, ardana-cobbler, grafana, openstack-heat-templates, openstack-murano, python-Django, rabbitmq-server, rubygem-puma","description":"This update for ardana-ansible, ardana-cobbler, grafana, openstack-heat-templates, openstack-murano, python-Django, rabbitmq-server, rubygem-puma fixes the following issues:\n\nSecurity updates included on this update:\n\nardana-ansible, ardana-cobbler, grafana, openstack-heat-templates, openstack-murano, rabbitmq-server:\n- CVE-2020-1734: Fixed vulnerability where shell was enabled by default in a pipe lookup plugin subprocess. (SOC-11662, bnc#1164139)\n- CVE-2021-44716: Fixed uncontrolled memory consumption in go's net/http. (bsc#1193597)\n- CVE-2019-11287: Fixed DoS via 'X-Reason' HTTP Header in malicious Erlang format string. (bsc#1157665)\n\ngrafana:\n- CVE-2021-39226: Fixed snapshot authentication bypass (bsc#1191454).\n- CVE-2021-44716: Fixed uncontrolled memory consumption in go's net/http (bsc#1193597).\n\npython-Django:\n- CVE-2022-28346: Fixed vulnerability that could lead to SQL injection in QuerySet.annotate(),aggregate() and extra(). (bsc#1198398)\n- CVE-2022-34265: Fixed vulnerability that could lead to SQL injection via Trunc(kind) and Extract(lookup_name) arguments. (bsc#1201186)\n\nrubygem puma:\n- CVE-2022-24790: Fixed HTTP request smuggling vulnerability. (bsc#1197818)\n\nAdditional information about the this update:\n\nChanges in ardana-ansible:\n- Update to version 8.0+git.1660773729.3789a6d:\n  * Mitigate CVE-2020-1734 (SOC-11662)\n\nChanges in ardana-cobbler:\n- Update to version 8.0+git.1660773402.d845a45:\n  * Mitigate CVE-2020-1734 (SOC-11662)\n\nChanges in grafana:\n- Add CVE-2021-39226 patch (bsc#1191454, CVE-2021-39226)\n  * snapshot authentication bypass\n\n- Bump Go to 1.16 (bsc#1193597, CVE-2021-44716)\n  * Fix Go net/http: limit growth of header canonicalization cache.\n\nChanges in openstack-heat-templates:\n- Update to version 0.0.0+git.1654529662.75fa04a:\n  * doc: Comment out language option\n\nChanges in openstack-murano:\n- Update to version murano-4.0.2.dev3:\n  * [stable-only] Remove periodic-stable-jobs template\n\nChanges in openstack-murano:\n- Update to version murano-4.0.2.dev3:\n  * [stable-only] Remove periodic-stable-jobs template\n\nChanges in rabbitmq-server:\n- add explanation-format patch to fix CVE-2019-11287 (bsc#1157665)\n\nChanges in python-Django:\n- Rename Django-1.11.29.tar.gz.asc to Django-1.11.29.tar.gz.checksums.txt\n  to avoid source_validator incorrectly trying to use it as a detached\n  signature file for the sources tarball.\n- Remove unnecessary project.diff file.\n\n- Add CVE-2022-28346 patch (bsc#1198398, CVE-2022-28346)\n    * Potential SQL injection in QuerySet.annotate(),aggregate() and extra()\n- Add CVE-2022-34265 patch (bsc#1201186, CVE-2022-34265)\n    * SQL injection via Trunc(kind) and Extract(lookup_name) arguments\n\nChanges in rubygem-puma:\n- Add CVE-2022-24790: Fixed HTTP request smuggling vulnerability (bsc#1197818).\n\n  ","status":"published","published":"2022-09-22T14:15:54Z","modified":"2026-02-04T04:24:21.060845Z","updated_at":"2026-11-02T15:53:51.440565Z"},{"id":"SUSE-SU-2022:3339-1","title":"Security update for ardana-ansible, ardana-cobbler, ardana-tempest, grafana, openstack-heat-templates, openstack-horizon-plugin-gbp-ui, openstack-neutron-gbp, openstack-nova, python-Django1, rabbitmq-server, rubygem-puma","description":"This update for ardana-ansible, ardana-cobbler, ardana-tempest, grafana, openstack-heat-templates, openstack-horizon-plugin-gbp-ui, openstack-neutron-gbp, openstack-nova, python-Django1, rabbitmq-server, rubygem-puma fixes the following issues:\n\nSecurity fixes included in this update:\n\nardana-ansible:\n- CVE-2020-1734: Fixed vulnerability where shell was enabled by default in a pipe lookup plugin subprocess (SOC-11662, bnc#1164139).\ngrafana:\n- CVE-2021-39226: Fixed snapshot authentication bypass (bsc#1191454).\nrabbitmq-server:\n- CVE-2019-11287: Fixed DoS via 'X-Reason' HTTP Header in malicious Erlang format string (bsc#1157665).\nrubygem-puma:\n- CVE-2022-24790: Fixed HTTP request smuggling (bsc#1197818).\npython-Django1:\n- CVE-2022-28346: Fixed vulnerability allowing SQL injection in QuerySet.annotate(),aggregate() and extra() (bsc#1198398).\n- CVE-2022-34265: Fixed vulnerability allowing SQL injection via Trunc(kind) and Extract(lookup_name) arguments (bsc#1201186).\nBugfixes:\n- Disabled two barbican tests (SOC-8764).\n\nNon-security fixes included on this update:\n\nChanges in ardana-ansible:\n- Update to version 9.0+git.1660748476.c118d23:\n  * Mitigate CVE-2020-1734 (SOC-11662)\n\nChanges in ardana-cobbler:\n- Update to version 9.0+git.1660747489.119efcd:\n  * Mitigate CVE-2020-1734 (SOC-11662)\n\nChanges in ardana-tempest:\n- Update to version 9.0+git.1651855288.a2341ad:\n  * Disable two barbican tests (SOC-8764)\n\nChanges in grafana:\n- Add CVE-2021-39226 patch (bsc#1191454, CVE-2021-39226)\n  * snapshot authentication bypass\n\nChanges in openstack-heat-templates:\n- Update to version 0.0.0+git.1654529662.75fa04a7:\n  * doc: Comment out language option\n\nChanges in openstack-horizon-plugin-gbp-ui:\n- Update to version group-based-policy-ui-14.0.1.dev4:\n  * remove legacy servicechain code\n\nChanges in openstack-neutron-gbp:\n- Update to version group-based-policy-14.0.1.dev46:\n  * Remove logs\n  2014.2.rc1\n\n- Update to version group-based-policy-14.0.1.dev45:\n  * FIP Status active after dissociate\n\n- Update to version group-based-policy-14.0.1.dev43:\n  * fixed apic synchronization state for multiple erspan session\n\n- Update to version group-based-policy-14.0.1.dev41:\n  * Remove\\_legacy\\_service\\_chain\\_code(2)\n\n- Update to version group-based-policy-14.0.1.dev39:\n  * data-migrations spelling fixes\n  2014.2rc1\n\n- Update to version group-based-policy-14.0.1.dev38:\n  * Adding support for address group feature in upstream\n\n- Update to version group-based-policy-14.0.1.dev36:\n  * Add support for yoga\n  2014.2.rc1\n\n- Update to version group-based-policy-14.0.1.dev35:\n  * Removed\\_legacy\\_service\\_chain\\_code\n  2014.2rc1\n\nChanges in openstack-nova:\n- Update to version nova-18.3.1.dev92:\n  * [stable-only] Drop lower-constraints job\n\nChanges in openstack-nova:\n- Update to version nova-18.3.1.dev92:\n  * [stable-only] Drop lower-constraints job\n\nChanges in python-Djanjo1:\n\n- Rename Django-1.11.29.tar.gz.asc to Django-1.11.29.tar.gz.checksums.txt\n  to avoid source_validator incorrectly trying to use it as a detached\n  signature file for the sources tarball.\n\n- Add CVE-2022-28346 patch (bsc#1198398, CVE-2022-28346)\n    * Potential SQL injection in QuerySet.annotate(),aggregate() and extra()\n- Add CVE-2022-34265 patch (bsc#1201186, CVE-2022-34265)\n    * SQL injection via Trunc(kind) and Extract(lookup_name) arguments\n\nChanges in rabbitmq-server:\n- add explanation-format patch to fix CVE-2019-11287 (bsc#1157665)\n\nChanges in rubygem-puma:\n- Add CVE-2022-24790 patch (bsc#1197818, CVE-2022-24790).\n  ","status":"published","published":"2022-09-22T14:16:26Z","modified":"2026-02-04T03:36:53.784125Z","updated_at":"2026-11-02T15:53:51.440565Z"},{"id":"SUSE-SU-2022:3571-1","title":"Security update for rubygem-puma","description":"This update for rubygem-puma fixes the following issues:\n\n  Updated to version 4.3.12:\n  - CVE-2022-24790: Fixed HTTP request smuggling if proxy is not RFC7230 compliant (bsc#1197818).\n","status":"published","published":"2022-10-13T05:34:57Z","modified":"2026-02-04T04:40:03.81303Z","updated_at":"2026-11-02T15:53:51.440565Z"},{"id":"USN-6682-1","title":"puma vulnerabilities","description":"ZeddYu Lu discovered that Puma incorrectly handled parsing certain headers.\nA remote attacker could possibly use this issue to perform an HTTP Request\nSmuggling attack. This issue only affected Ubuntu 20.04 LTS.\n(CVE-2020-11076)\n\nIt was discovered that Puma incorrectly handled parsing certain headers.\nA remote attacker could possibly use this issue to perform an HTTP Request\nSmuggling attack. This issue only affected Ubuntu 20.04 LTS.\n(CVE-2020-11077)\n\nJean Boussier discovered that Puma might not always release resources\nproperly after handling HTTP requests. A remote attacker could possibly\nuse this issue to read sensitive information. (CVE-2022-23634)\n\nIt was discovered that Puma incorrectly handled certain malformed headers.\nA remote attacker could use this issue to perform an HTTP Request Smuggling\nattack. (CVE-2022-24790)\n\nBen Kallus discovered that Puma incorrectly handled parsing certain headers.\nA remote attacker could use this issue to perform an HTTP Request Smuggling\nattack. (CVE-2023-40175)\n\nBartek Nowotarski discovered that Puma incorrectly handled parsing certain\nencoded content. A remote attacker could possibly use this to cause a\ndenial of service. (CVE-2024-21647)\n","status":"published","published":"2024-03-07T14:00:06Z","modified":"2026-04-27T17:17:23.416530229Z","updated_at":"2026-11-02T16:58:17.914523Z"}]}}
