{"api_version":"1","generated_at":"2026-07-23T20:58:16+00:00","cve":"CVE-2021-21328","urls":{"html":"https://cve.report/CVE-2021-21328","api":"https://cve.report/api/cve/CVE-2021-21328.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2021-21328","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2021-21328"},"summary":{"title":"CVE-2021-21328","description":"Vapor is a web framework for Swift. In Vapor before version 4.40.1, there is a DoS attack against anyone who Bootstraps a metrics backend for their Vapor app. The following is the attack vector: 1. send unlimited requests against a vapor instance with different paths. this will create unlimited counters and timers, which will eventually drain the system. 2. downstream services might suffer from this attack as well by being spammed with error paths. This has been patched in 4.40.1. The `DefaultResponder` will rewrite any undefined route paths for to `vapor_route_undefined` to avoid unlimited counters.","state":"PUBLIC","assigner":"security-advisories@github.com","published_at":"2021-02-26 02:15:00","updated_at":"2021-03-05 19:38:00"},"problem_types":["CWE-400"],"metrics":[],"references":[{"url":"https://vapor.codes/","name":"https://vapor.codes/","refsource":"MISC","tags":["Product"],"title":"Vapor (Web Framework for Swift)","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/vapor/vapor/commit/e3aa712508db2854ac0ab905696c65fd88fa7e23","name":"https://github.com/vapor/vapor/commit/e3aa712508db2854ac0ab905696c65fd88fa7e23","refsource":"MISC","tags":["Patch","Third Party Advisory"],"title":"Merge pull request from GHSA-gcj9-jj38-hwmc · vapor/vapor@e3aa712 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/vapor/vapor/releases/tag/4.40.1","name":"https://github.com/vapor/vapor/releases/tag/4.40.1","refsource":"MISC","tags":["Release Notes","Third Party Advisory"],"title":"Release Rewrite metrics path and method to undefined for unknown routes · vapor/vapor · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/vapor/vapor/security/advisories/GHSA-gcj9-jj38-hwmc","name":"https://github.com/vapor/vapor/security/advisories/GHSA-gcj9-jj38-hwmc","refsource":"CONFIRM","tags":["Third Party Advisory"],"title":"Vapor's Metrics integration could cause a system drain · Advisory · vapor/vapor · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-21328","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-21328","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2021","cve_id":"21328","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"vapor_project","cpe5":"vapor","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"swift","cpe12":"*","cpe13":"*"},{"cve_year":"2021","cve_id":"21328","vulnerable":"1","versionEndIncluding":"1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"vapor_project","cpe5":"vapor","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"swift","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"security-advisories@github.com","ID":"CVE-2021-21328","STATE":"PUBLIC","TITLE":"Denial of Service"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"vapor","version":{"version_data":[{"version_value":"<= 4.40.0"}]}}]},"vendor_name":"vapor"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"Vapor is a web framework for Swift. In Vapor before version 4.40.1, there is a DoS attack against anyone who Bootstraps a metrics backend for their Vapor app. The following is the attack vector: 1. send unlimited requests against a vapor instance with different paths. this will create unlimited counters and timers, which will eventually drain the system. 2. downstream services might suffer from this attack as well by being spammed with error paths. This has been patched in 4.40.1. The `DefaultResponder` will rewrite any undefined route paths for to `vapor_route_undefined` to avoid unlimited counters."}]},"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-400: Uncontrolled Resource Consumption"}]}]},"references":{"reference_data":[{"name":"https://github.com/vapor/vapor/security/advisories/GHSA-gcj9-jj38-hwmc","refsource":"CONFIRM","url":"https://github.com/vapor/vapor/security/advisories/GHSA-gcj9-jj38-hwmc"},{"name":"https://github.com/vapor/vapor/commit/e3aa712508db2854ac0ab905696c65fd88fa7e23","refsource":"MISC","url":"https://github.com/vapor/vapor/commit/e3aa712508db2854ac0ab905696c65fd88fa7e23"},{"name":"https://github.com/vapor/vapor/releases/tag/4.40.1","refsource":"MISC","url":"https://github.com/vapor/vapor/releases/tag/4.40.1"},{"name":"https://vapor.codes/","refsource":"MISC","url":"https://vapor.codes/"}]},"source":{"advisory":"GHSA-gcj9-jj38-hwmc","discovery":"UNKNOWN"}},"nvd":{"publishedDate":"2021-02-26 02:15:00","lastModifiedDate":"2021-03-05 19:38:00","problem_types":["CWE-400"],"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:L","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"NONE","availabilityImpact":"LOW","baseScore":5.3,"baseSeverity":"MEDIUM"},"exploitabilityScore":3.9,"impactScore":1.4},"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:vapor_project:vapor:*:*:*:*:*:swift:*:*","versionEndExcluding":"4.40.1","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2021","CveId":"21328","Ordinal":"195454","Title":"CVE-2021-21328","CVE":"CVE-2021-21328","Year":"2021"},"notes":[{"CveYear":"2021","CveId":"21328","Ordinal":"1","NoteData":"Vapor is a web framework for Swift. In Vapor before version 4.40.1, there is a DoS attack against anyone who Bootstraps a metrics backend for their Vapor app. The following is the attack vector: 1. send unlimited requests against a vapor instance with different paths. this will create unlimited counters and timers, which will eventually drain the system. 2. downstream services might suffer from this attack as well by being spammed with error paths. This has been patched in 4.40.1. The `DefaultResponder` will rewrite any undefined route paths for to `vapor_route_undefined` to avoid unlimited counters.","Type":"Description","Title":null},{"CveYear":"2021","CveId":"21328","Ordinal":"2","NoteData":"2021-02-25","Type":"Other","Title":"Published"},{"CveYear":"2021","CveId":"21328","Ordinal":"3","NoteData":"2021-02-25","Type":"Other","Title":"Modified"}]}}}