Skip to content
OpenAdvisories
Unscored Public exploit CVE-2020-8287 EUVD-2020-29155GHSA-f33f-hhx9-6j4m

Node.js versions before 10.23.1, 12.20.1, 14.15.4, 15.5.1 allow two copies of a header field in an HTTP request (for example, two Transfer-…

Published Jan 6, 2021 · Updated Apr 30, 2025 · Assigned by hackerone

Description

Node.js versions before 10.23.1, 12.20.1, 14.15.4, 15.5.1 allow two copies of a header field in an HTTP request (for example, two Transfer-Encoding header fields). In this case, Node.js identifies the first header field and ignores the second. This can lead to HTTP Request Smuggling.

Affected products

VendorProductAffectedFixed
NodeJS Node 4.0 – < 4.*, 5.0 – < 5.*, 6.0 – < 6.*, 7.0 – < 7.*, 8.0 – < 8.*, 9.0 – < 9.*, 10.0 – < 10.23.1, 11.0 – < 11.*, 12.0 – < 12.20.1, 13.0 – < 13.*, 14.0 – < 14.15.4, 15.0 – < 15.5.1 4.*

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.

ReleasePackageFixed inAdvisory
Debian 14 http-parser 2.9.4-5 —
Debian 14 nodejs 12.20.1~dfsg-1 —
Debian 13 http-parser 2.9.4-5 —
Debian 13 nodejs 12.20.1~dfsg-1 —
Debian 12 http-parser 2.9.4-5 —
Debian 12 nodejs 12.20.1~dfsg-1 —
Debian 10 http-parser 2.8.1-1+deb10u3 DLA-3224-1
Debian 10 nodejs 10.23.1~dfsg-1~deb10u1 DSA-4826-1
ReleasePackageFixed inAdvisory
Ubuntu 22.04 LTS http-parser No fix yet —
Ubuntu 20.04 LTS http-parser No fix yet —
Ubuntu 20.04 LTS nodejs 10.19.0~dfsg-3ubuntu1.1 USN-6380-1
Ubuntu 18.04 LTS http-parser 2.7.1-2ubuntu0.1 USN-5563-1
Ubuntu 16.04 LTS http-parser No fix yet —
Ubuntu 14.04 LTS http-parser No fix yet —
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 18.04 LTS nodejs 8.10.0~dfsg-2ubuntu0.4+esm2 USN-6380-1
Ubuntu Pro 16.04 LTS nodejs 4.2.6~dfsg-1ubuntu4.2+esm2 USN-6380-1
Ubuntu Pro 14.04 LTS nodejs No fix yet —
ReleasePackageFixed inAdvisory
RHEL 8 nodejs +3 1:10.23.1-1.module+el8.3.0+9502+012d8a97 RHSA-2021:0551, RHSA-2021:0549, RHSA-2021:0548
RHEL 8 nodejs-nodemon 1.18.3-1.module+el8+2632+6c5111ed RHSA-2021:0551, RHSA-2021:0549, RHSA-2021:0548
RHEL 8 nodejs-packaging 17-3.module+el8.1.0+3369+37ae6a45 RHSA-2021:0551, RHSA-2021:0549, RHSA-2021:0548
RHEL 8 npm 1:6.14.10-1.10.23.1.1.module+el8.3.0+9502+012d8a97 RHSA-2021:0551, RHSA-2021:0549, RHSA-2021:0548
RHEL 3 rh-nodejs10-nodejs +2 10.23.1-2.el7 RHSA-2021:0521
RHEL 3 rh-nodejs10-npm 6.14.10-10.23.1.2.el7 RHSA-2021:0521
RHEL 3 rh-nodejs12-nodejs +2 12.20.1-1.el7 RHSA-2021:0485
RHEL 3 rh-nodejs12-nodejs-nodemon 2.0.3-1.el7 RHSA-2021:0485
RHEL 3 rh-nodejs12-npm 6.14.10-12.20.1.1.el7 RHSA-2021:0485
RHEL 3 rh-nodejs14-nodejs +2 14.15.4-2.el7 RHSA-2021:0421
RHEL 3 rh-nodejs14-npm 6.14.10-14.15.4.2.el7 RHSA-2021:0421

AlmaLinux

Errata ↗
ReleasePackageFixed inAdvisory
AlmaLinux 8 nodejs-nodemon 1.18.3-1.module_el8.3.0+2023+d2377ea3 ALSA-2021:0551, ALSA-2021:0549, ALSA-2021:0548
AlmaLinux 8 nodejs-packaging 17-3.module_el8.3.0+2023+d2377ea3 ALSA-2021:0551, ALSA-2021:0549, ALSA-2021:0548

Rocky Linux

Errata ↗
ReleasePackageFixed inAdvisory
Rocky Linux 8 nodejs-nodemon 1.18.3-1.module+el8.3.0+101+f84c7154 RLSA-2021:0551, RLSA-2021:0549, RLSA-2021:0548
Rocky Linux 8 nodejs-packaging 17-3.module+el8.3.0+101+f84c7154 RLSA-2021:0551, RLSA-2021:0549, RLSA-2021:0548
ReleasePackageFixed inAdvisory
SLES 15 SP2 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLES 15 SP2 nodejs12 12.20.1-4.10.1 SUSE-SU-2021:0062-1
SLES 15 SP2 nodejs14 14.15.4-5.6.1 SUSE-SU-2021:0061-1
SLES 15 SP2 nodejs8 8.17.0-10.6.1 SUSE-SU-2021:0121-1
SLES 15 SP1 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLES 15 SP1 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SLES 15 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLES 15 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SLES 12 nodejs10 10.23.1-1.33.1 SUSE-SU-2021:0082-1
SLES 12 nodejs12 12.20.1-1.26.1 SUSE-SU-2021:0068-1
SLES 12 nodejs14 14.15.4-6.6.1 SUSE-SU-2021:0107-1
Show 8 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 15 SP1 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SLES for SAP 15 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLES for SAP 15 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SLE HPC 15 SP1 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SLE HPC 15 nodejs10 10.23.1-1.30.1 SUSE-SU-2021:0060-1
SLE HPC 15 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SUSE Manager Server 4.0 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SUSE Manager Retail Branch Server 4.0 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SUSE Manager Proxy 4.0 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
SUSE Enterprise Storage 6 nodejs8 8.17.0-3.42.2 SUSE-SU-2021:0224-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed nodejs14 14.17.5-1.2 openSUSE-SU-2024:11096-1
openSUSE Leap 15.2 nodejs10 10.23.1-lp152.2.9.1 openSUSE-SU-2021:0065-1
openSUSE Leap 15.2 nodejs12 12.20.1-lp152.3.9.1 openSUSE-SU-2021:0064-1
openSUSE Leap 15.2 nodejs14 14.15.4-lp152.5.1 openSUSE-SU-2021:0066-1
openSUSE Leap 15.2 nodejs8 8.17.0-lp152.3.8.1 openSUSE-SU-2021:0195-1
openSUSE Leap 15.1 nodejs10 10.23.1-lp151.2.15.1 openSUSE-SU-2021:0082-1
ReleasePackageFixed inAdvisory
Alpine v3.24 nodejs 14.15.4-r0 —
Alpine v3.24 nodejs-current 15.5.1-r0 —
Alpine v3.23 nodejs 14.15.4-r0 —
Alpine v3.23 nodejs-current 15.5.1-r0 —
Alpine v3.22 nodejs 14.15.4-r0 —
Alpine v3.22 nodejs-current 15.5.1-r0 —
Alpine v3.21 nodejs 14.15.4-r0 —
Alpine v3.21 nodejs-current 15.5.1-r0 —
Alpine v3.20 nodejs 14.15.4-r0 —
Alpine v3.20 nodejs-current 15.5.1-r0 —
Show 9 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 nodejs 14.15.4-r0 —
Alpine v3.19 nodejs-current 15.5.1-r0 —
Alpine v3.18 nodejs 14.15.4-r0 —
Alpine v3.18 nodejs-current 15.5.1-r0 —
Alpine v3.17 nodejs 14.15.4-r0 —
Alpine v3.17 nodejs-current 15.5.1-r0 —
Alpine v3.16 nodejs 14.15.4-r0 —
Alpine v3.16 nodejs-current 15.5.1-r0 —
Alpine v3.15 nodejs 14.15.4-r0 —
Alpine v3.15 nodejs-current 15.5.1-r0 —
Alpine v3.14 nodejs 14.15.4-r0 —
Alpine v3.14 nodejs-current 15.5.1-r0 —
Alpine v3.13 nodejs 14.15.4-r0 —
Alpine v3.13 nodejs-current 15.5.1-r0 —
Alpine v3.12 nodejs 12.20.1-r0 —
Alpine v3.11 nodejs 12.20.1-r0 —

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 8 nodejs +3 1:10.23.1-1.module+el8.3.0+9642+87902f83 ELSA-2021-0551, ELSA-2021-0549, ELSA-2021-0548
Oracle Linux 8 nodejs-nodemon 1.18.3-1.module+el8.1.0+5392+4d6b561f ELSA-2021-0551, ELSA-2021-0549, ELSA-2021-0548
Oracle Linux 8 nodejs-packaging 17-3.module+el8.1.0+5392+4d6b561f ELSA-2021-0551, ELSA-2021-0549, ELSA-2021-0548
Oracle Linux 8 npm 1:6.14.10-1.10.23.1.1.module+el8.3.0+9642+87902f83 ELSA-2021-0551, ELSA-2021-0549, ELSA-2021-0548

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 37

References