{"api_version":"1","generated_at":"2026-04-23T02:14:30+00:00","cve":"CVE-2019-16770","urls":{"html":"https://cve.report/CVE-2019-16770","api":"https://cve.report/api/cve/CVE-2019-16770.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2019-16770","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2019-16770"},"summary":{"title":"CVE-2019-16770","description":"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.","state":"PUBLIC","assigner":"security-advisories@github.com","published_at":"2019-12-05 20:15:00","updated_at":"2022-10-08 02:42:00"},"problem_types":["CWE-770"],"metrics":[],"references":[{"url":"https://github.com/puma/puma/security/advisories/GHSA-7xx3-m584-x994","name":"https://github.com/puma/puma/security/advisories/GHSA-7xx3-m584-x994","refsource":"CONFIRM","tags":["Mitigation","Third Party Advisory"],"title":"Keepalive thread overload/DoS · Advisory · puma/puma · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://lists.debian.org/debian-lts-announce/2022/05/msg00034.html","name":"[debian-lts-announce] 20220525 [SECURITY] [DLA 3023-1] puma security update","refsource":"MLIST","tags":[],"title":"[SECURITY] [DLA 3023-1] puma security update","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://www.cve.org/CVERecord?id=CVE-2019-16770","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2019-16770","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2019","cve_id":"16770","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"o","cpe4":"debian","cpe5":"debian_linux","cpe6":"9.0","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2019","cve_id":"16770","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"puma","cpe5":"puma","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"ruby","cpe12":"*","cpe13":"*"},{"cve_year":"2019","cve_id":"16770","vulnerable":"1","versionEndIncluding":"1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"puma","cpe5":"puma","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"ruby","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2019-16770","qid":"179346","title":"Debian Security Update for puma (DLA 3023-1)"},{"cve":"CVE-2019-16770","qid":"239895","title":"Red Hat Update for Satellite 6.10 (RHSA-2021:4702)"},{"cve":"CVE-2019-16770","qid":"750577","title":"OpenSUSE Security Update for rmt-server (openSUSE-SU-2020:2000-1)"},{"cve":"CVE-2019-16770","qid":"750580","title":"OpenSUSE Security Update for rmt-server (openSUSE-SU-2020:1993-1)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"security-advisories@github.com","ID":"CVE-2019-16770","STATE":"PUBLIC","TITLE":"Potential DOS attack in Puma"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"puma","version":{"version_data":[{"version_affected":"<","version_name":"< 4.3.1","version_value":"4.3.1"}]}}]},"vendor_name":"puma"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"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."}]},"impact":{"cvss":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"LOW","baseScore":5.3,"baseSeverity":"MEDIUM","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-770 Allocation of Resources Without Limits or Throttling"}]}]},"references":{"reference_data":[{"name":"https://github.com/puma/puma/security/advisories/GHSA-7xx3-m584-x994","refsource":"CONFIRM","url":"https://github.com/puma/puma/security/advisories/GHSA-7xx3-m584-x994"},{"refsource":"MLIST","name":"[debian-lts-announce] 20220525 [SECURITY] [DLA 3023-1] puma security update","url":"https://lists.debian.org/debian-lts-announce/2022/05/msg00034.html"}]},"source":{"advisory":"GHSA-7xx3-m584-x994","discovery":"UNKNOWN"},"work_around":[{"lang":"eng","value":"Reverse proxies in front of Puma could be configured to always allow less than X keepalive connections to a Puma cluster or process, where X is the number of threads configured in Puma's thread pool."}]},"nvd":{"publishedDate":"2019-12-05 20:15:00","lastModifiedDate":"2022-10-08 02:42:00","problem_types":["CWE-770"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH"},"exploitabilityScore":3.9,"impactScore":3.6},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:N/C:N/I:N/A:P","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"PARTIAL","baseScore":5},"severity":"MEDIUM","exploitabilityScore":10,"impactScore":2.9,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:*","versionStartIncluding":"3.0.0","versionEndExcluding":"3.12.2","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:puma:puma:*:*:*:*:*:ruby:*:*","versionStartIncluding":"4.0.0","versionEndExcluding":"4.3.1","cpe_name":[]}]},{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:o:debian:debian_linux:9.0:*:*:*:*:*:*:*","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2019","CveId":"16770","Ordinal":"156492","Title":"CVE-2019-16770","CVE":"CVE-2019-16770","Year":"2019"},"notes":[{"CveYear":"2019","CveId":"16770","Ordinal":"1","NoteData":"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.","Type":"Description","Title":null},{"CveYear":"2019","CveId":"16770","Ordinal":"2","NoteData":"2019-12-05","Type":"Other","Title":"Published"},{"CveYear":"2019","CveId":"16770","Ordinal":"3","NoteData":"2020-02-04","Type":"Other","Title":"Modified"}]}}}