Description
The Express web framework before 3.11 and 4.x before 4.5 for Node.js does not provide a charset field in HTTP Content-Type headers in 400 level responses, which might allow remote attackers to conduct cross-site scripting (XSS) attacks via characters in a non-standard encoding.
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | node-express | 4.16.4-1 | — |
| Debian 13 | node-express | 4.16.4-1 | — |
| Debian 12 | node-express | 4.16.4-1 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 18.04 LTS | node-express | No fix yet | — |
| Ubuntu Pro 16.04 LTS | node-express | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | express | < 3.11.0 | 3.11.0 | GHSA-gpvr-g6gh-9mc2 |
| npm | express | >= 4.0.0, < 4.5.0 | 4.5.0 | GHSA-gpvr-g6gh-9mc2 |