{"id":"CVE-2025-32379","aliases":["CLSA-2026-1774830253","CLSA-2026-1787657292","CLSA-2026-1792779347","EUVD-2025-10545","GHSA-x2rg-q646-7m2v","ROOT-APP-NPM-CVE-2025-32379"],"status":"published","title":"XSS at ctx.redirect() function in Koajs","description":"Koa is expressive middleware for Node.js using ES2017 async functions. In koa \u003c 2.16.1 and \u003c 3.0.0-alpha.5, passing untrusted user input to ctx.redirect() even after sanitizing it, may execute javascript code on the user who use the app. This issue is patched in 2.16.1 and 3.0.0-alpha.5.","severity":{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00267,"percentile":0.18983,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2025-04-09T13:00:07Z","modified":"2026-10-28T02:31:13Z","fixes":[{"ecosystem":"npm","package":"koa","fixed_in":["2.16.1","3.0.0-alpha.5"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:npm","package":"koa","fixed_in":["1.7.1-tuxcare.1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/koa","fixed_in":["2.15.4-root.io.4"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"koa","fixed_in":["2.15.4-aikido.4"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.16.1"}]}]},{"source":"ghsa","ecosystem":"npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0-alpha.1"},{"fixed":"3.0.0-alpha.5"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.7.1-tuxcare.0"},{"fixed":"1.7.1-tuxcare.1"}]}],"versions":["1.7.1"]},{"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":"0"},{"fixed":"2.16.1"}]}]},{"source":"osv","ecosystem":"npm","package":"koa","ranges":[{"type":"SEMVER","events":[{"introduced":"3.0.0-alpha.1"},{"fixed":"3.0.0-alpha.5"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.15.4-root.io.4"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"koa","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.15.4-aikido.4"}]}]}],"products":[{"vendor":"koajs","product":"koa"}],"references":[{"url":"https://github.com/koajs/koa/security/advisories/GHSA-x2rg-q646-7m2v","tags":["x_refsource_CONFIRM","Patch","Vendor Advisory","advisory","web"]},{"url":"https://github.com/koajs/koa/commit/ff25eb4a7f2392df46481fe86355161067687312","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-32379","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-x2rg-q646-7m2v"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/32xxx/CVE-2025-32379.json","tags":["advisory"]},{"url":"https://github.com/koajs/koa","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-32379","title":"XSS at ctx.redirect() function in Koajs","description":"Koa is expressive middleware for Node.js using ES2017 async functions. In koa \u003c 2.16.1 and \u003c 3.0.0-alpha.5, passing untrusted user input to ctx.redirect() even after sanitizing it, may execute javascript code on the user who use the app. This issue is patched in 2.16.1 and 3.0.0-alpha.5.","status":"published","published":"2025-04-09T15:56:40.574Z","modified":"2025-04-09T20:45:15.899Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:32:46.109993Z"}],"euvd":[{"id":"EUVD-2025-10545","description":"Koa is expressive middleware for Node.js using ES2017 async functions. In koa \u003c 2.16.1 and \u003c 3.0.0-alpha.5, passing untrusted user input to ctx.redirect() even after sanitizing it, may execute javascript code on the user who use the app. This issue is patched in 2.16.1 and 3.0.0-alpha.5.","status":"published","published":"2025-04-09T15:56:40Z","modified":"2025-04-09T20:45:15Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L","level":"medium"}],"updated_at":"2026-11-02T20:52:37.733624Z"}],"ghsa":[{"id":"GHSA-x2rg-q646-7m2v","title":"Koajs vulnerable to Cross-Site Scripting (XSS) at ctx.redirect() function","description":"### Summary\nIn koa \u003c 2.16.1 and \u003c 3.0.0-alpha.5, passing untrusted user input to ctx.redirect() even after sanitizing it, may execute javascript code on the user who use the app.\n\n### Patches\nThis issue is patched in  2.16.1 and 3.0.0-alpha.5.\n\n### PoC\nComing soon...\n\n### Impact\n1. Redirect user to another phishing site\n2. Make request to another endpoint of the application based on user's cookie\n3. Steal user's cookie","status":"published","published":"2025-04-09T13:00:07Z","modified":"2025-10-05T07:09:57Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:38:59.83883Z"}],"nvd":[{"id":"CVE-2025-32379","description":"Koa is expressive middleware for Node.js using ES2017 async functions. In koa \u003c 2.16.1 and \u003c 3.0.0-alpha.5, passing untrusted user input to ctx.redirect() even after sanitizing it, may execute javascript code on the user who use the app. This issue is patched in 2.16.1 and 3.0.0-alpha.5.","status":"published","published":"2025-04-09T16:15:25.903Z","modified":"2026-06-17T09:11:54.453Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L","level":"medium","assessor":"secondary"},{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:11:00.087098Z"}],"osv":[{"id":"CVE-2025-32379","title":"XSS at ctx.redirect() function in Koajs","description":"Koa is expressive middleware for Node.js using ES2017 async functions. In koa \u003c 2.16.1 and \u003c 3.0.0-alpha.5, passing untrusted user input to ctx.redirect() even after sanitizing it, may execute javascript code on the user who use the app. This issue is patched in 2.16.1 and 3.0.0-alpha.5.","status":"published","published":"2025-04-09T15:56:40.574Z","modified":"2026-10-28T02:31:13.705294719Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:44:48.02508Z"},{"id":"GHSA-x2rg-q646-7m2v","title":"Koajs vulnerable to Cross-Site Scripting (XSS) at ctx.redirect() function","description":"### Summary\nIn koa \u003c 2.16.1 and \u003c 3.0.0-alpha.5, passing untrusted user input to ctx.redirect() even after sanitizing it, may execute javascript code on the user who use the app.\n\n### Patches\nThis issue is patched in  2.16.1 and 3.0.0-alpha.5.\n\n### PoC\nComing soon...\n\n### Impact\n1. Redirect user to another phishing site\n2. Make request to another endpoint of the application based on user's cookie\n3. Steal user's cookie","status":"published","published":"2025-04-09T13:00:07Z","modified":"2025-04-09T20:29:43Z","cvss":[{"version":"3.1","score":5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:59.484835Z"},{"id":"CLSA-2026-1774830253","title":"TuxCare security update for koa (1 CVE)","description":"TuxCare rebuilt koa to address 1 CVE. Fixed in 1.7.1-tuxcare.1.","status":"published","published":"2026-08-04T14:52:16Z","modified":"2026-10-15T09:47:48.77259154Z","updated_at":"2026-11-02T15:43:43.621843Z"},{"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-32379","title":"CVE-2025-32379 in @rootio/koa - Patched by Root","description":"Root has patched CVE-2025-32379 in the @rootio/koa package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-06-24T15:37:56Z","modified":"2026-06-24T18:15:33.946999527Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
