{"id":"CVE-2025-25200","aliases":["CLSA-2026-1787657292","CLSA-2026-1792779347","EUVD-2025-4086","GHSA-593f-38f6-jp5m","ROOT-APP-NPM-CVE-2025-25200"],"status":"published","title":"Koa has Inefficient Regular Expression Complexity","description":"Koa is expressive middleware for Node.js using ES2017 async functions. Prior to versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3, Koa uses an evil regex to parse the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP headers. This can be exploited to carry out a Denial-of-Service attack. Versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3 fix the issue.","severity":{"version":"4.0","score":9.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00841,"percentile":0.58326,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-1333"],"published":"2025-02-12T17:59:04Z","modified":"2026-10-28T02:31:06Z","exploits":[{"source":"pocgithub","id":"dwictor0/PoC-CVE-2025-25200","title":"dwictor0/PoC-CVE-2025-25200","date":"2026-03-22","url":"https://github.com/dwictor0/PoC-CVE-2025-25200"},{"source":"pocgithub","id":"gduma-phData/patch-CVE-2025-25200","title":"gduma-phData/patch-CVE-2025-25200","date":"2026-08-24","url":"https://github.com/gduma-phData/patch-CVE-2025-25200"}],"fixes":[{"ecosystem":"npm","package":"koa","fixed_in":["2.15.4","3.0.0-alpha.3","1.7.1","0.21.2"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"koa","fixed_in":["2.15.3-aikido.2","2.11.0-aikido.2","2.15.3-aikido.1","2.11.0-aikido.1","2.15.4-aikido.2","2.15.4-aikido.3","2.15.4-aikido.4"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/koa","fixed_in":["2.15.3-root.io.2","2.11.0-root.io.2","2.15.3-root.io.1","2.11.0-root.io.1","2.15.4-root.io.1","2.15.4-root.io.2","2.15.4-root.io.3","2.15.4-root.io.4"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.15.4"}]}]},{"source":"ghsa","ecosystem":"npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0-alpha.0"},{"fixed":"3.0.0-alpha.3"}]}]},{"source":"ghsa","ecosystem":"npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.0"},{"fixed":"1.7.1"}]}]},{"source":"ghsa","ecosystem":"npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.21.2"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.15.3-tuxcare.0"},{"fixed":"2.15.3-tuxcare.1"}]}],"versions":["2.15.3"],"bundled":4},{"source":"osv","ecosystem":"TuxCare:npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.15.4-tuxcare.0"},{"fixed":"2.15.4-tuxcare.1"}]}],"versions":["2.15.4"],"bundled":4},{"source":"osv","ecosystem":"npm","package":"koa","ranges":[{"type":"SEMVER","events":[{"introduced":"2.0.0"},{"fixed":"2.15.4"}]}]},{"source":"osv","ecosystem":"npm","package":"koa","ranges":[{"type":"SEMVER","events":[{"introduced":"3.0.0-alpha.0"},{"fixed":"3.0.0-alpha.3"}]}]},{"source":"osv","ecosystem":"npm","package":"koa","ranges":[{"type":"SEMVER","events":[{"introduced":"1.0.0"},{"fixed":"1.7.1"}]}]},{"source":"osv","ecosystem":"npm","package":"koa","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.21.2"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.15.3-aikido.2"},{"fixed":"2.11.0-aikido.2"},{"fixed":"2.15.3-aikido.1"},{"fixed":"2.11.0-aikido.1"},{"fixed":"2.15.4-aikido.2"},{"fixed":"2.15.4-aikido.3"},{"fixed":"2.15.4-aikido.4"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.15.3-root.io.2"},{"fixed":"2.11.0-root.io.2"},{"fixed":"2.15.3-root.io.1"},{"fixed":"2.11.0-root.io.1"},{"fixed":"2.15.4-root.io.1"},{"fixed":"2.15.4-root.io.2"},{"fixed":"2.15.4-root.io.3"},{"fixed":"2.15.4-root.io.4"}]}]}],"products":[{"vendor":"koajs","product":"koa"}],"references":[{"url":"https://github.com/koajs/koa/security/advisories/GHSA-593f-38f6-jp5m","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web"]},{"url":"https://github.com/koajs/koa/commit/5054af6e31ffd451a4151a1fe144cef6e5d0d83c","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/koajs/koa/commit/5f294bb1c7c8d9c61904378d250439a321bffd32","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/koajs/koa/commit/93fe903fc966635a991bcf890cfc3427d33a1a08","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/koajs/koa/blob/master/lib/request.js#L259","tags":["x_refsource_MISC","Product","web"]},{"url":"https://github.com/koajs/koa/blob/master/lib/request.js#L404","tags":["x_refsource_MISC","Product","web"]},{"url":"https://github.com/koajs/koa/releases/tag/2.15.4","tags":["x_refsource_MISC","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-25200","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-593f-38f6-jp5m"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/25xxx/CVE-2025-25200.json","tags":["advisory"]},{"url":"https://github.com/koajs/koa","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-25200","title":"Koa has Inefficient Regular Expression Complexity","description":"Koa is expressive middleware for Node.js using ES2017 async functions. Prior to versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3, Koa uses an evil regex to parse the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP headers. This can be exploited to carry out a Denial-of-Service attack. Versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3 fix the issue.","status":"published","published":"2025-02-12T17:59:04.615Z","modified":"2025-02-12T19:29:10.232Z","cvss":[{"version":"4.0","score":9.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H","level":"critical","assessor":"cna"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:32:31.971896Z"}],"euvd":[{"id":"EUVD-2025-4086","description":"Koa is expressive middleware for Node.js using ES2017 async functions. Prior to versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3, Koa uses an evil regex to parse the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP headers. This can be exploited to carry out a Denial-of-Service attack. Versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3 fix the issue.","status":"published","published":"2025-02-12T17:59:04Z","modified":"2025-02-12T19:29:10Z","cvss":[{"version":"4.0","score":9.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H","level":"critical"}],"updated_at":"2026-11-03T00:03:57.395516Z"}],"ghsa":[{"id":"GHSA-593f-38f6-jp5m","title":"Inefficient Regular Expression Complexity in koa","description":"### Summary\nKoa uses an evil regex to parse the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP headers. This can be exploited to carry out a Denial-of-Service attack.\n\n### PoC\n\nComing soon.\n\n### Impact\nThis is a Regex Denial-of-Service attack and causes memory exhaustion. The regex should be improved and empty values should not be allowed.","status":"published","published":"2025-02-12T19:23:09Z","modified":"2025-02-12T19:23:12Z","cvss":[{"version":"4.0","score":9.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H","level":"critical"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:38:30.754382Z"}],"nvd":[{"id":"CVE-2025-25200","description":"Koa is expressive middleware for Node.js using ES2017 async functions. Prior to versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3, Koa uses an evil regex to parse the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP headers. This can be exploited to carry out a Denial-of-Service attack. Versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3 fix the issue.","status":"published","published":"2025-02-12T18:15:28.11Z","modified":"2026-06-17T09:00:28.32Z","cvss":[{"version":"4.0","score":9.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","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:N/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:10:51.445921Z"}],"osv":[{"id":"CVE-2025-25200","title":"Koa has Inefficient Regular Expression Complexity","description":"Koa is expressive middleware for Node.js using ES2017 async functions. Prior to versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3, Koa uses an evil regex to parse the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP headers. This can be exploited to carry out a Denial-of-Service attack. Versions 0.21.2, 1.7.1, 2.15.4, and 3.0.0-alpha.3 fix the issue.","status":"published","published":"2025-02-12T17:59:04.615Z","modified":"2026-10-28T02:31:06.424727355Z","cvss":[{"version":"4.0","score":9.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H","level":"critical"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T15:44:47.386092Z"},{"id":"GHSA-593f-38f6-jp5m","title":"Inefficient Regular Expression Complexity in koa","description":"### Summary\nKoa uses an evil regex to parse the `X-Forwarded-Proto` and `X-Forwarded-Host` HTTP headers. This can be exploited to carry out a Denial-of-Service attack.\n\n### PoC\n\nComing soon.\n\n### Impact\nThis is a Regex Denial-of-Service attack and causes memory exhaustion. The regex should be improved and empty values should not be allowed.","status":"published","published":"2025-02-12T19:23:09Z","modified":"2025-02-12T19:27:07.225487Z","cvss":[{"version":"4.0","score":9.2,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H","level":"critical"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T15:46:38.213481Z"},{"id":"CLSA-2026-1787657292","title":"TuxCare security update for koa (4 CVEs)","description":"TuxCare rebuilt koa to address 4 CVEs. Fixed in 2.15.3-tuxcare.1.","status":"published","published":"2026-08-25T11:28:12Z","modified":"2026-10-15T09:48:03.101758517Z","updated_at":"2026-11-02T15:43:47.20725Z"},{"id":"CLSA-2026-1792779347","title":"TuxCare security update for koa (4 CVEs)","description":"TuxCare rebuilt koa to address 4 CVEs. Fixed in 2.15.4-tuxcare.1.","status":"published","published":"2026-10-23T18:15:47Z","modified":"2026-10-23T19:15:09.373866513Z","updated_at":"2026-11-02T15:43:54.981307Z"},{"id":"ROOT-APP-NPM-CVE-2025-25200","title":"CVE-2025-25200 in koa - Patched by Root","description":"Root has patched CVE-2025-25200 in the koa package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-09-11T08:24:58Z","modified":"2026-09-11T09:15:03.255372671Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
