Skip to content
Heist/ feed
Back to feed
High

Security advisory

Type: advisorySources: OSVCVE: CVE-2019-16770

In Puma before versions 3.12.2 and 4.3.1, a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. If more keepalive connections to Puma are opened than there are threads available, additional connections will wait permanently if the attacker sends requests frequently enough. This vulnerability is patched in Puma 4.3.1 and 3.12.2.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2019-16770
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 11:02 UTC · Revision 1

Source evidence

CVE-2019-16770

core-osv · Original source

Published 5 Dec 2019, 20:15 UTC

In Puma before versions 3.12.2 and 4.3.1, a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. If more keepalive connections to Puma are opened than there are threads available, additional connections will wait permanently if the attacker sends requests frequently enough. This vulnerability is patched in Puma 4.3.1 and 3.12.2.

osv:CVE-2019-16770
Complete source record
{
  "id": "df4e15e3ffceeffdf392f1b35ed8ee6f2aef11f69ffc979d2dbcdcb3aa20c6f7",
  "url": "https://osv.dev/vulnerability/CVE-2019-16770",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2019-16770",
    "summary": "In Puma before versions 3.12.2 and 4.3.1, a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. If more keepalive connections to Puma are opened than there are threads available, additional connections will wait permanently if the attacker sends requests frequently enough. This vulnerability is patched in Puma 4.3.1 and 3.12.2.",
    "evidence": "osv:CVE-2019-16770",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2019-16770",
      "aliases": [
        "CVE-2019-16770",
        "GHSA-7xx3-m584-x994"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/puma/puma",
              "type": "GIT",
              "events": [
                {
                  "introduced": "f0762d1216c825009a5d3d0a13d1d3ec1ff95682"
                },
                {
                  "fixed": "bb29fc7fe8f822d0f72706a1ae86e49af3476777"
                },
                {
                  "introduced": "f5d7600e4e4d9104803b5f0f5f596f8dc45fc191"
                },
                {
                  "fixed": "2986bc4ab5e03072d4c09739649c5c9221b13c8d"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:*",
                    "range": [
                      {
                        "introduced": "3.0.0"
                      },
                      {
                        "fixed": "3.12.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:*",
                    "range": [
                      {
                        "introduced": "4.0.0"
                      },
                      {
                        "fixed": "4.3.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.12.1",
            "v4.3.0",
            "v4.2.1",
            "v4.2.0",
            "v4.1.0",
            "v4.0.1",
            "v4.0.0",
            "v3.12.0",
            "v3.11.4",
            "v3.11.3",
            "v3.11.2",
            "v3.11.1",
            "v3.11.0",
            "v3.10.0",
            "v3.9.1",
            "v3.9.0",
            "v3.8.0",
            "v3.7.1",
            "v3.6.0",
            "v3.5.2",
            "v3.5.1",
            "v3.5.0",
            "v3.4.0",
            "v3.3.0",
            "v3.2.0",
            "v3.1.1",
            "v3.1.0",
            "v3.0.2",
            "v3.0.1",
            "v3.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2019-16770.json"
          }
        }
      ],
      "modified": "2026-10-20T10:52:27.540054520Z",
      "provider": "osv",
      "references": [
        "https://github.com/puma/puma/security/advisories/GHSA-7xx3-m584-x994",
        "https://lists.debian.org/debian-lts-announce/2022/05/msg00034.html"
      ],
      "provider_metadata": {
        "unresolved_ranges": [
          {
            "cpes": [
              "cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*"
            ],
            "vendor_product": "debian:debian_linux",
            "extracted_events": [
              {
                "range": [
                  {
                    "introduced": "9.0"
                  },
                  {
                    "last_affected": "9.0"
                  }
                ],
                "source": "CPE_STRING"
              }
            ]
          }
        ]
      }
    },
    "related_cves": [
      {
        "value": "CVE-2019-16770",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 383654,
  "published_at": "2019-12-05T20:15:10.093+00:00"
}