CVE-2026-87018
undici vulnerable to Denial of Service via TLS 1.2 certificate-changing renegotiation
undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
undici vulnerable to Denial of Service via TLS 1.2 certificate-changing renegotiation
undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it.
- Record
CVE-2026-87018- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-617
- Updated
- 2026-11-02
EUVDEUVD-2026-102318
7.5
undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it.
- Record
EUVD-2026-102318- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-qrxm-fqhp-jwvm
7.5
undici vulnerable to Denial of Service via TLS 1.2 certificate-changing renegotiation
Impact
undici crashes the client process when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with ERR_TLS_CERT_ALTNAME_INVALID. undici's established socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught AssertionError that terminates the Node.js process. Both the HTTP/1.1 and HTTP/2 paths are affected.
A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process. Only TLS 1.2 is affected, because TLS 1.3 does not support renegotiation. Exploitation does not require a CA compromise: the attacker controls the endpoint and can present two ordinary valid certificates, the first matching the requested URL and the second intentionally not matching it.
Patches
Upgrade to undici 6.29.1, 7.30.1, or 8.12.2.
Workarounds
Restrict outbound connections to TLS 1.3, for example by setting connect: { minVersion: 'TLSv1.3', maxVersion: 'TLSv1.3' } on the client or agent, so that renegotiation cannot occur, when the target endpoints support TLS 1.3.
- Record
GHSA-qrxm-fqhp-jwvm- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-617
- Updated
- 2026-11-02
NVD
7.5
undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it.
- Record
CVE-2026-87018- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-617
- Updated
- 2026-11-02
OSV
7.5
undici vulnerable to Denial of Service via TLS 1.2 certificate-changing renegotiation
undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it.
- Record
CVE-2026-87018- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-617
- Updated
- 2026-11-05
OSVDEBIAN-CVE-2026-87018
7.5
undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it.
- Record
DEBIAN-CVE-2026-87018- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 10 moreShow less
OSVGHSA-qrxm-fqhp-jwvm
7.5
undici vulnerable to Denial of Service via TLS 1.2 certificate-changing renegotiation
Impact
undici crashes the client process when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with ERR_TLS_CERT_ALTNAME_INVALID. undici's established socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught AssertionError that terminates the Node.js process. Both the HTTP/1.1 and HTTP/2 paths are affected.
A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process. Only TLS 1.2 is affected, because TLS 1.3 does not support renegotiation. Exploitation does not require a CA compromise: the attacker controls the endpoint and can present two ordinary valid certificates, the first matching the requested URL and the second intentionally not matching it.
Patches
Upgrade to undici 6.29.1, 7.30.1, or 8.12.2.
Workarounds
Restrict outbound connections to TLS 1.3, for example by setting connect: { minVersion: 'TLSv1.3', maxVersion: 'TLSv1.3' } on the client or agent, so that renegotiation cannot occur, when the target endpoints support TLS 1.3.
- Record
GHSA-qrxm-fqhp-jwvm- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-248, CWE-617
- Updated
- 2026-11-02
OSVRHSA-2026:84657
7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:84657- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRHSA-2026:84706
7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:84706- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-87018
7.5
undici is an HTTP client library for Node.js. In versions 4.2.1 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, the client process crashes when a TLS 1.2 server renegotiates after the connection is established and presents a different, CA-trusted certificate whose hostname does not match the requested host. Node.js re-runs hostname verification on the renegotiated handshake and destroys the socket with a certificate-altname error, but undici's established-socket error handler asserted that this error code could never occur, so the peer-controlled error became an uncaught assertion that terminates the Node.js process, affecting both the HTTP/1.1 and HTTP/2 paths. A malicious or compromised HTTPS endpoint reached through undici or the global fetch() can crash the client with a single server-initiated renegotiation, taking down all in-flight requests and background work in the process, and exploitation needs no CA compromise because the attacker controls the endpoint and can present two ordinary valid certificates. Only TLS 1.2 is affected, since TLS 1.3 does not support renegotiation. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, and users should upgrade to one of those versions or later. As a workaround, restrict outbound connections to TLS 1.3 so renegotiation cannot occur, when the target endpoints support it.
- Record
UBUNTU-CVE-2026-87018- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1793973288 No score
TuxCare security update for undici (1 CVE)
TuxCare rebuilt undici to address 1 CVE. Fixed in 6.11.1-tuxcare.10.
- Record
CLSA-2026-1793973288- Updated
- 2026-11-06
OSVCLSA-2026-1793973612 No score
TuxCare security update for undici (3 CVEs)
TuxCare rebuilt undici to address 3 CVEs. Fixed in 5.29.0-tuxcare.9.
- Record
CLSA-2026-1793973612- Updated
- 2026-11-06
OSVCLSA-2026-1793973732 No score
TuxCare security update for undici (1 CVE)
TuxCare rebuilt undici to address 1 CVE. Fixed in 5.28.5-tuxcare.12.
- Record
CLSA-2026-1793973732- Updated
- 2026-11-06
OSVCLSA-2026-1793973854 No score
TuxCare security update for undici (2 CVEs)
TuxCare rebuilt undici to address 2 CVEs. Fixed in 5.5.1-tuxcare.4.
- Record
CLSA-2026-1793973854- Updated
- 2026-11-06
OSVopenSUSE-SU-2026:12421-1 No score
pi-coding-agent-1.5.0-1.1 on GA media
These are all security issues fixed in the pi-coding-agent-1.5.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12421-1- Updated
- 2026-11-05
OSVROOT-APP-NPM-CVE-2026-87018 No score
CVE-2026-87018 in undici - Patched by Root
Root has patched CVE-2026-87018 in the undici package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2026-87018- Updated
- 2026-11-03
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
undicinpm |
4.2.1 up to 6.29.1 | 6.29.1 |
undicinpm |
7.0.0 up to 7.30.1 | 7.30.1 |
undicinpm |
8.0.0 up to 8.12.2 | 8.12.2 |
undiciTuxCare:npm |
6.11.1-tuxcare.0 up to 6.11.1-tuxcare.10, plus listed versions 6.11.16.11.1-tuxcare.16.11.1-tuxcare.26.11.1-tuxcare.36.11.1-tuxcare.4 Show 5 moreShow less6.11.1-tuxcare.56.11.1-tuxcare.66.11.1-tuxcare.76.11.1-tuxcare.86.11.1-tuxcare.9 |
6.11.1-tuxcare.10 |
undiciTuxCare:npm From an advisory covering 3 CVEs |
5.29.0-tuxcare.0 up to 5.29.0-tuxcare.9, plus listed versions 5.29.05.29.0-tuxcare.15.29.0-tuxcare.25.29.0-tuxcare.35.29.0-tuxcare.4 Show 4 moreShow less5.29.0-tuxcare.55.29.0-tuxcare.65.29.0-tuxcare.75.29.0-tuxcare.8 |
5.29.0-tuxcare.9 |
undiciTuxCare:npm |
5.28.5-tuxcare.0 up to 5.28.5-tuxcare.12, plus listed versions 5.28.55.28.5-tuxcare.15.28.5-tuxcare.105.28.5-tuxcare.115.28.5-tuxcare.2 Show 7 moreShow less5.28.5-tuxcare.35.28.5-tuxcare.45.28.5-tuxcare.55.28.5-tuxcare.65.28.5-tuxcare.75.28.5-tuxcare.85.28.5-tuxcare.9 |
5.28.5-tuxcare.12 |
undiciTuxCare:npm From an advisory covering 2 CVEs |
5.5.1-tuxcare.0 up to 5.5.1-tuxcare.4, plus listed versions 5.5.15.5.1-tuxcare.15.5.1-tuxcare.25.5.1-tuxcare.3 |
5.5.1-tuxcare.4 |
node-undiciDebian:12 |
All versions, plus listed versions 5.15.0+dfsg1+~cs20.10.9.3-15.15.0+dfsg1+~cs20.10.9.3-1+deb12u15.15.0+dfsg1+~cs20.10.9.3-1+deb12u25.15.0+dfsg1+~cs20.10.9.3-1+deb12u35.15.0+dfsg1+~cs20.10.9.3-1+deb12u4 Show 38 moreShow less5.19.1+dfsg1+~cs20.10.9.5-15.19.1+dfsg1+~cs20.10.9.5-25.22.1+dfsg1+~cs20.10.10.2-15.26.3+dfsg1+~cs23.10.12-15.26.3+dfsg1+~cs23.10.12-25.26.3+dfsg1+~cs23.10.12-35.28.0+dfsg1+~cs23.11.12.3-15.28.0+dfsg1+~cs23.11.12.3-25.28.2+dfsg1+~cs23.11.12.3-15.28.2+dfsg1+~cs23.11.12.3-25.28.2+dfsg1+~cs23.11.12.3-35.28.2+dfsg1+~cs23.11.12.3-45.28.2+dfsg1+~cs23.11.12.3-55.28.2+dfsg1+~cs23.11.12.3-65.28.4+dfsg1+~cs23.12.11-15.28.4+dfsg1+~cs23.12.11-27.1.0+dfsg1+~cs24.12.10-17.15.0+dfsg+~cs3.2.0-17.15.0+dfsg+~cs3.2.0-37.16.0+dfsg+~cs3.2.0-17.16.0+dfsg+~cs3.2.0-27.18.2+dfsg+~cs3.2.0-17.2.3+dfsg1+~cs24.12.11-17.2.3+dfsg1+~cs24.12.11-27.24.5+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-27.24.6+dfsg+~cs3.2.0-37.3.0+dfsg1+~cs24.12.11-17.3.0+dfsg1+~cs24.12.11-28.10.2+dfsg+~cs3.2.2-18.12.1+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-28.5.0+dfsg+~cs3.2.0-18.5.0+dfsg+~cs3.2.0-28.5.0+dfsg+~cs3.2.0-38.9.0+dfsg+~cs3.2.0-1 |
None known |
node-undiciDebian:13 |
All versions, plus listed versions 7.15.0+dfsg+~cs3.2.0-17.15.0+dfsg+~cs3.2.0-37.16.0+dfsg+~cs3.2.0-17.16.0+dfsg+~cs3.2.0-27.18.2+dfsg+~cs3.2.0-1 Show 14 moreShow less7.24.5+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-27.24.6+dfsg+~cs3.2.0-37.3.0+dfsg1+~cs24.12.11-17.3.0+dfsg1+~cs24.12.11-28.10.2+dfsg+~cs3.2.2-18.12.1+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-18.12.2+dfsg+~cs3.2.3-28.5.0+dfsg+~cs3.2.0-18.5.0+dfsg+~cs3.2.0-28.5.0+dfsg+~cs3.2.0-38.9.0+dfsg+~cs3.2.0-1 |
None known |
node-undiciDebian:14 |
before 8.12.2+dfsg+~cs3.2.3-1, plus listed versions 7.15.0+dfsg+~cs3.2.0-17.15.0+dfsg+~cs3.2.0-37.16.0+dfsg+~cs3.2.0-17.16.0+dfsg+~cs3.2.0-27.18.2+dfsg+~cs3.2.0-1 Show 12 moreShow less7.24.5+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-17.24.6+dfsg+~cs3.2.0-27.24.6+dfsg+~cs3.2.0-37.3.0+dfsg1+~cs24.12.11-17.3.0+dfsg1+~cs24.12.11-28.10.2+dfsg+~cs3.2.2-18.12.1+dfsg+~cs3.2.3-18.5.0+dfsg+~cs3.2.0-18.5.0+dfsg+~cs3.2.0-28.5.0+dfsg+~cs3.2.0-38.9.0+dfsg+~cs3.2.0-1 |
8.12.2+dfsg+~cs3.2.3-1 |
Show 24 moreShow less
| Package | Affected | Fixed |
|---|---|---|
nodejs26Red Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:26.11.1-0.4.hum1 | 0:26.11.1-0.4.hum1 |
nodejs26-binRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:26.11.1-0.4.hum1 | 0:26.11.1-0.4.hum1 |
nodejs26-develRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:26.11.1-0.4.hum1 | 0:26.11.1-0.4.hum1 |
nodejs26-docsRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:26.11.1-0.4.hum1 | 0:26.11.1-0.4.hum1 |
nodejs26-full-i18nRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:26.11.1-0.4.hum1 | 0:26.11.1-0.4.hum1 |
nodejs26-libsRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:26.11.1-0.4.hum1 | 0:26.11.1-0.4.hum1 |
nodejs26-npmRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:11.20.0-1.26.11.1.0.4.hum1 | 0:11.20.0-1.26.11.1.0.4.hum1 |
nodejs26-npm-binRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:26.11.1-0.4.hum1 | 0:26.11.1-0.4.hum1 |
v8-14.6-develRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:14.6.202.34-1.26.11.1.0.4.hum1 | 0:14.6.202.34-1.26.11.1.0.4.hum1 |
nodejs24Red Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:24.21.0-1.5.hum1 | 0:24.21.0-1.5.hum1 |
nodejs24-binRed Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:24.21.0-1.5.hum1 | 0:24.21.0-1.5.hum1 |
nodejs24-develRed Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:24.21.0-1.5.hum1 | 0:24.21.0-1.5.hum1 |
nodejs24-docsRed Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:24.21.0-1.5.hum1 | 0:24.21.0-1.5.hum1 |
nodejs24-full-i18nRed Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:24.21.0-1.5.hum1 | 0:24.21.0-1.5.hum1 |
nodejs24-libsRed Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:24.21.0-1.5.hum1 | 0:24.21.0-1.5.hum1 |
nodejs24-npmRed Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:11.19.0-1.24.21.0.1.5.hum1 | 0:11.19.0-1.24.21.0.1.5.hum1 |
nodejs24-npm-binRed Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:24.21.0-1.5.hum1 | 0:24.21.0-1.5.hum1 |
v8-13.6-develRed Hat:hummingbird:1 From an advisory covering 8 CVEs |
before 0:13.6.233.17-1.24.21.0.1.5.hum1 | 0:13.6.233.17-1.24.21.0.1.5.hum1 |
undiciRoot:npm |
before 5.29.0-aikido.5 | 5.29.0-aikido.55.28.5-aikido.35.29.0-aikido.65.28.5-aikido.45.28.4-aikido.66.28.0-aikido.26.28.1-aikido.16.29.0-aikido.16.29.0-aikido.27.29.0-aikido.57.29.1-aikido.16.28.1-aikido.27.29.1-aikido.26.27.0-aikido.36.28.0-aikido.36.27.0-aikido.47.29.0-aikido.66.26.0-aikido.56.27.0-aikido.56.27.0-aikido.6 |
@rootio/undiciRoot:npm |
before 5.29.0-root.io.5 | 5.29.0-root.io.55.28.5-root.io.35.29.0-root.io.65.28.5-root.io.45.28.4-root.io.66.28.0-root.io.26.28.1-root.io.16.29.0-root.io.16.29.0-root.io.27.29.0-root.io.57.29.1-root.io.16.28.1-root.io.27.29.1-root.io.26.27.0-root.io.36.28.0-root.io.36.27.0-root.io.47.29.0-root.io.66.26.0-root.io.56.27.0-root.io.56.27.0-root.io.6 |
node-undiciUbuntu:24.04:LTS |
All versions, plus listed versions 5.22.1+dfsg1+~cs20.10.10.2-1ubuntu15.26.3+dfsg1+~cs23.10.12-2 |
None known |
node-undiciUbuntu:26.10 |
All versions, plus listed versions 7.18.2+dfsg+~cs3.2.0-1build17.24.6+dfsg+~cs3.2.0-38.5.0+dfsg+~cs3.2.0-28.5.0+dfsg+~cs3.2.0-38.9.0+dfsg+~cs3.2.0-1 |
None known |
node-undiciUbuntu:26.04:LTS |
All versions, plus listed versions 7.3.0+dfsg1+~cs24.12.11-27.16.0+dfsg+~cs3.2.0-27.18.2+dfsg+~cs3.2.0-17.18.2+dfsg+~cs3.2.0-1build1 |
None known |
pi-coding-agentopenSUSE:Tumbleweed From an advisory covering 2 CVEs |
before 1.5.0-1.1 | 1.5.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases | OSV | |
| affected | ||
| affected, aliases, facts, references | OSV | |
| affected | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-87018 is a high vulnerability (CVSS 7.5) in Nodejs Undici, published October 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.19%, the 8th percentile. Fixed in undici 6.29.1.
References
github.com/nodejs/undici/security/advisories/GHSA-qrxm-fqhp-jwvm
cna.openjsf.org/security-advisories.html
nvd.nist.gov/vuln/detail/CVE-2026-87018
github.com/nodejs/undici/commit/12cfd96c3f430897656e3edc1c5e02be8c1cd309
github.com/nodejs/undici/commit/b40fbfc0651703cf9fa9f6ced68b679f28d8bb28
github.com/nodejs/undici/commit/e257e9f8fb42eedd50727b9cf65e548c8925e4a8
Show 68 moreShow less
github.com/nodejs/undici/releases/tag/v6.29.1
github.com/nodejs/undici/releases/tag/v7.30.1
github.com/nodejs/undici/releases/tag/v8.12.2
github.com/advisories/GHSA-qrxm-fqhp-jwvm
github.com/CVEProject/cvelistV5/tree/main/cves/2026/87xxx/CVE-2026-87018.json
security-tracker.debian.org/tracker/CVE-2026-87018
github.com/nodejs/undici
access.redhat.com/errata/RHSA-2026:84657
access.redhat.com/security/cve/CVE-2026-102276
access.redhat.com/security/cve/CVE-2026-109383
access.redhat.com/security/cve/CVE-2026-109829
access.redhat.com/security/cve/CVE-2026-109841
access.redhat.com/security/cve/CVE-2026-109869
access.redhat.com/security/cve/CVE-2026-109924
access.redhat.com/security/cve/CVE-2026-109932
access.redhat.com/security/cve/CVE-2026-87018
access.redhat.com/security/cve/CVE-2026-87029
access.redhat.com/security/updates/classification
images.redhat.com
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_84657.json
bugzilla.redhat.com/show_bug.cgi?id=2553677
cve.org/CVERecord?id=CVE-2026-87018
bugzilla.redhat.com/show_bug.cgi?id=2553726
cve.org/CVERecord?id=CVE-2026-87029
nvd.nist.gov/vuln/detail/CVE-2026-87029
github.com/nodejs/undici/security/advisories/GHSA-55wc-3pg8-jfw6
bugzilla.redhat.com/show_bug.cgi?id=2542707
cve.org/CVERecord?id=CVE-2026-102276
nvd.nist.gov/vuln/detail/CVE-2026-102276
github.com/juliangruber/brace-expansion/commit/0bcbfc0a5928c3073d48f42999d1ce4fc1c42fbc
github.com/juliangruber/brace-expansion/commit/316359e6019c39b3254c8ba8e25dc586a480652c
github.com/juliangruber/brace-expansion/commit/5171e681c0922b7ae8bfaf9a331e309107be6edc
github.com/juliangruber/brace-expansion/commit/6735c94873ca570bcdd6a0690033bdd3126379d3
github.com/juliangruber/brace-expansion/security/advisories/GHSA-6j4f-fj2g-mc7p
bugzilla.redhat.com/show_bug.cgi?id=2553678
cve.org/CVERecord?id=CVE-2026-109383
nvd.nist.gov/vuln/detail/CVE-2026-109383
github.com/nodejs/undici/commit/f75eac00ac17
github.com/nodejs/undici/security/advisories/GHSA-2m5v-pch6-74hx
bugzilla.redhat.com/show_bug.cgi?id=2553679
cve.org/CVERecord?id=CVE-2026-109829
nvd.nist.gov/vuln/detail/CVE-2026-109829
github.com/nodejs/undici/commit/26c2bfb3def0
github.com/nodejs/undici/security/advisories/GHSA-4w7w-5xrc-9h26
bugzilla.redhat.com/show_bug.cgi?id=2553669
cve.org/CVERecord?id=CVE-2026-109841
nvd.nist.gov/vuln/detail/CVE-2026-109841
github.com/nodejs/undici/commit/4f7ef6806e53
github.com/nodejs/undici/security/advisories/GHSA-f72v-6w45-q472
bugzilla.redhat.com/show_bug.cgi?id=2553656
cve.org/CVERecord?id=CVE-2026-109869
nvd.nist.gov/vuln/detail/CVE-2026-109869
github.com/nodejs/undici/commit/b5084c7dc239
github.com/nodejs/undici/security/advisories/GHSA-xjj6-f33q-929c
bugzilla.redhat.com/show_bug.cgi?id=2553663
cve.org/CVERecord?id=CVE-2026-109924
nvd.nist.gov/vuln/detail/CVE-2026-109924
github.com/nodejs/undici/commit/789ef26461c
github.com/nodejs/undici/security/advisories/GHSA-4qv8-2p9j-2685
bugzilla.redhat.com/show_bug.cgi?id=2553687
cve.org/CVERecord?id=CVE-2026-109932
nvd.nist.gov/vuln/detail/CVE-2026-109932
github.com/nodejs/undici/security/advisories/GHSA-9fm3-97px-rjf6
access.redhat.com/errata/RHSA-2026:84706
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_84706.json
ubuntu.com/security/CVE-2026-87018
suse.com/security/cve/CVE-2026-112366
suse.com/security/cve/CVE-2026-87018