diff --git a/2021/29xxx/CVE-2021-29509.json b/2021/29xxx/CVE-2021-29509.json index e009f2d21de..1c6088245d7 100644 --- a/2021/29xxx/CVE-2021-29509.json +++ b/2021/29xxx/CVE-2021-29509.json @@ -1,18 +1,101 @@ { - "data_type": "CVE", - "data_format": "MITRE", - "data_version": "4.0", "CVE_data_meta": { + "ASSIGNER": "security-advisories@github.com", "ID": "CVE-2021-29509", - "ASSIGNER": "cve@mitre.org", - "STATE": "RESERVED" + "STATE": "PUBLIC", + "TITLE": "Keepalive Connections Causing Denial Of Service in puma" }, + "affects": { + "vendor": { + "vendor_data": [ + { + "product": { + "product_data": [ + { + "product_name": "puma", + "version": { + "version_data": [ + { + "version_value": "< 4.3.8" + }, + { + "version_value": ">= 5.0.0, < 5.3.1" + } + ] + } + } + ] + }, + "vendor_name": "puma" + } + ] + } + }, + "data_format": "MITRE", + "data_type": "CVE", + "data_version": "4.0", "description": { "description_data": [ { "lang": "eng", - "value": "** RESERVED ** This candidate has been reserved by an organization or individual that will use it when announcing a new security problem. When the candidate has been publicized, the details for this candidate will be provided." + "value": "Puma is a concurrent HTTP 1.1 server for Ruby/Rack applications. The fix for CVE-2019-16770 was incomplete. The original fix only protected existing connections that had already been accepted from having their requests starved by greedy persistent-connections saturating all threads in the same process. However, new connections may still be starved by greedy persistent-connections saturating all threads in all processes in the cluster. A `puma` server which received more concurrent `keep-alive` connections than the server had threads in its threadpool would service only a subset of connections, denying service to the unserved connections. This problem has been fixed in `puma` 4.3.8 and 5.3.1. Setting `queue_requests false` also fixes the issue. This is not advised when using `puma` without a reverse proxy, such as `nginx` or `apache`, because you will open yourself to slow client attacks (e.g. slowloris). The fix is very small and a git patch is available for those using unsupported versions of Puma." } ] + }, + "impact": { + "cvss": { + "attackComplexity": "LOW", + "attackVector": "NETWORK", + "availabilityImpact": "HIGH", + "baseScore": 7.5, + "baseSeverity": "HIGH", + "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:H", + "version": "3.1" + } + }, + "problemtype": { + "problemtype_data": [ + { + "description": [ + { + "lang": "eng", + "value": "{\"CWE-400\":\"Uncontrolled Resource Consumption\"}" + } + ] + } + ] + }, + "references": { + "reference_data": [ + { + "name": "https://github.com/puma/puma/security/advisories/GHSA-q28m-8xjw-8vr5", + "refsource": "CONFIRM", + "url": "https://github.com/puma/puma/security/advisories/GHSA-q28m-8xjw-8vr5" + }, + { + "name": "https://gist.github.com/nateberkopec/4b3ea5676c0d70cbb37c82d54be25837", + "refsource": "MISC", + "url": "https://gist.github.com/nateberkopec/4b3ea5676c0d70cbb37c82d54be25837" + }, + { + "name": "https://github.com/puma/puma/security/policy", + "refsource": "MISC", + "url": "https://github.com/puma/puma/security/policy" + }, + { + "name": "https://rubygems.org/gems/puma", + "refsource": "MISC", + "url": "https://rubygems.org/gems/puma" + } + ] + }, + "source": { + "advisory": "GHSA-q28m-8xjw-8vr5", + "discovery": "UNKNOWN" } } \ No newline at end of file