Vulnerability Details CVE-2026-27959
Koa is middleware for Node.js using ES2017 async functions. Prior to versions 3.1.2 and 2.16.4, Koa's `ctx.hostname` API performs naive parsing of the HTTP Host header, extracting everything before the first colon without validating the input conforms to RFC 3986 hostname syntax. When a malformed Host header containing a `@` symbol is received, `ctx.hostname` returns `evil[.]com` - an attacker-controlled value. Applications using `ctx.hostname` for URL generation, password reset links, email verification URLs, or routing decisions are vulnerable to Host header injection attacks. Versions 3.1.2 and 2.16.4 fix the issue.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.001
EPSS Ranking 22.1%
CVSS Severity
CVSS v3 Score 7.5
Products affected by CVE-2026-27959
-
cpe:2.3:a:koajs:koa:0.0.2
-
cpe:2.3:a:koajs:koa:0.1.0
-
cpe:2.3:a:koajs:koa:0.1.1
-
cpe:2.3:a:koajs:koa:0.1.2
-
cpe:2.3:a:koajs:koa:0.10.0
-
cpe:2.3:a:koajs:koa:0.11.0
-
cpe:2.3:a:koajs:koa:0.12.0
-
cpe:2.3:a:koajs:koa:0.12.1
-
cpe:2.3:a:koajs:koa:0.12.2
-
cpe:2.3:a:koajs:koa:0.13.0
-
cpe:2.3:a:koajs:koa:0.14.0
-
cpe:2.3:a:koajs:koa:0.15.0
-
cpe:2.3:a:koajs:koa:0.16.0
-
cpe:2.3:a:koajs:koa:0.17.0
-
cpe:2.3:a:koajs:koa:0.18.0
-
cpe:2.3:a:koajs:koa:0.18.1
-
cpe:2.3:a:koajs:koa:0.19.0
-
cpe:2.3:a:koajs:koa:0.19.1
-
cpe:2.3:a:koajs:koa:0.2.0
-
cpe:2.3:a:koajs:koa:0.2.1
-
cpe:2.3:a:koajs:koa:0.20.0
-
cpe:2.3:a:koajs:koa:0.21.0
-
cpe:2.3:a:koajs:koa:0.21.1
-
cpe:2.3:a:koajs:koa:0.21.2
-
cpe:2.3:a:koajs:koa:0.3.0
-
cpe:2.3:a:koajs:koa:0.4.0
-
cpe:2.3:a:koajs:koa:0.5.0
-
cpe:2.3:a:koajs:koa:0.5.1
-
cpe:2.3:a:koajs:koa:0.5.2
-
cpe:2.3:a:koajs:koa:0.5.3
-
cpe:2.3:a:koajs:koa:0.5.4
-
cpe:2.3:a:koajs:koa:0.5.5
-
cpe:2.3:a:koajs:koa:0.6.0
-
cpe:2.3:a:koajs:koa:0.6.1
-
cpe:2.3:a:koajs:koa:0.6.2
-
cpe:2.3:a:koajs:koa:0.6.3
-
cpe:2.3:a:koajs:koa:0.7.0
-
cpe:2.3:a:koajs:koa:0.8.0
-
cpe:2.3:a:koajs:koa:0.8.1
-
cpe:2.3:a:koajs:koa:0.8.2
-
cpe:2.3:a:koajs:koa:0.9.0
-
cpe:2.3:a:koajs:koa:1.0.0
-
cpe:2.3:a:koajs:koa:1.1.0
-
cpe:2.3:a:koajs:koa:1.1.1
-
cpe:2.3:a:koajs:koa:1.1.2
-
cpe:2.3:a:koajs:koa:1.2.0
-
cpe:2.3:a:koajs:koa:1.2.1
-
cpe:2.3:a:koajs:koa:1.2.2
-
cpe:2.3:a:koajs:koa:1.2.3
-
cpe:2.3:a:koajs:koa:1.2.4
-
cpe:2.3:a:koajs:koa:1.2.5
-
cpe:2.3:a:koajs:koa:1.3.0
-
cpe:2.3:a:koajs:koa:1.4.0
-
cpe:2.3:a:koajs:koa:1.4.1
-
cpe:2.3:a:koajs:koa:1.5.0
-
cpe:2.3:a:koajs:koa:1.5.1
-
cpe:2.3:a:koajs:koa:1.6.0
-
cpe:2.3:a:koajs:koa:1.6.1
-
cpe:2.3:a:koajs:koa:1.6.2
-
cpe:2.3:a:koajs:koa:1.7.0
-
cpe:2.3:a:koajs:koa:1.7.1
-
cpe:2.3:a:koajs:koa:2.0.0
-
cpe:2.3:a:koajs:koa:2.0.1
-
cpe:2.3:a:koajs:koa:2.1.0
-
cpe:2.3:a:koajs:koa:2.10.0
-
cpe:2.3:a:koajs:koa:2.11.0
-
cpe:2.3:a:koajs:koa:2.12.0
-
cpe:2.3:a:koajs:koa:2.12.1
-
cpe:2.3:a:koajs:koa:2.13.0
-
cpe:2.3:a:koajs:koa:2.13.1
-
cpe:2.3:a:koajs:koa:2.13.2
-
cpe:2.3:a:koajs:koa:2.13.3
-
cpe:2.3:a:koajs:koa:2.13.4
-
cpe:2.3:a:koajs:koa:2.14.0
-
cpe:2.3:a:koajs:koa:2.14.1
-
cpe:2.3:a:koajs:koa:2.14.2
-
cpe:2.3:a:koajs:koa:2.15.0
-
cpe:2.3:a:koajs:koa:2.15.1
-
cpe:2.3:a:koajs:koa:2.15.2
-
cpe:2.3:a:koajs:koa:2.15.3
-
cpe:2.3:a:koajs:koa:2.15.4
-
cpe:2.3:a:koajs:koa:2.16.0
-
cpe:2.3:a:koajs:koa:2.16.1
-
cpe:2.3:a:koajs:koa:2.16.2
-
cpe:2.3:a:koajs:koa:2.2.0
-
cpe:2.3:a:koajs:koa:2.3.0
-
cpe:2.3:a:koajs:koa:2.4.0
-
cpe:2.3:a:koajs:koa:2.4.1
-
cpe:2.3:a:koajs:koa:2.5.0
-
cpe:2.3:a:koajs:koa:2.5.1
-
cpe:2.3:a:koajs:koa:2.5.2
-
cpe:2.3:a:koajs:koa:2.5.3
-
cpe:2.3:a:koajs:koa:2.6.0
-
cpe:2.3:a:koajs:koa:2.6.1
-
cpe:2.3:a:koajs:koa:2.6.2
-
cpe:2.3:a:koajs:koa:2.7.0
-
cpe:2.3:a:koajs:koa:2.8.0
-
cpe:2.3:a:koajs:koa:2.8.1
-
cpe:2.3:a:koajs:koa:2.8.2
-
cpe:2.3:a:koajs:koa:2.9.0
-
cpe:2.3:a:koajs:koa:3.0.0