Action not permitted
Modal body text goes here.
Modal Title
Modal Body
CERTFR-2026-AVI-1531
Vulnerability from certfr_avis - Published: 2026-11-13 - Updated: 2026-11-13
De multiples vulnérabilités ont été découvertes dans Node.js. Certaines d'entre elles permettent à un attaquant de provoquer une atteinte à la confidentialité des données, un contournement de la politique de sécurité et un déni de service.
Solutions
Se référer au bulletin de sécurité de l'éditeur pour l'obtention des correctifs (cf. section Documentation).
| Title | Publication Time | Tags | |||
|---|---|---|---|---|---|
|
|||||
{
"$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
"affected_systems": [
{
"description": "Node.js versions ant\u00e9rieures \u00e0 22.23.5",
"product": {
"name": "Node.js",
"vendor": {
"name": "Node.js",
"scada": false
}
}
},
{
"description": "Node.js versions 26.x ant\u00e9rieures \u00e0 26.13.1",
"product": {
"name": "Node.js",
"vendor": {
"name": "Node.js",
"scada": false
}
}
},
{
"description": "Node.js versions 24.x ant\u00e9rieures \u00e0 24.22.3",
"product": {
"name": "Node.js",
"vendor": {
"name": "Node.js",
"scada": false
}
}
}
],
"affected_systems_content": "",
"content": "## Solutions\n\nSe r\u00e9f\u00e9rer au bulletin de s\u00e9curit\u00e9 de l\u0027\u00e9diteur pour l\u0027obtention des correctifs (cf. section Documentation).",
"cves": [
{
"name": "CVE-2026-123874",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123874"
},
{
"name": "CVE-2026-126051",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-126051"
},
{
"name": "CVE-2026-123875",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123875"
},
{
"name": "CVE-2026-123866",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123866"
},
{
"name": "CVE-2026-123828",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123828"
},
{
"name": "CVE-2026-123877",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123877"
},
{
"name": "CVE-2024-27983",
"url": "https://www.cve.org/CVERecord?id=CVE-2024-27983"
},
{
"name": "CVE-2026-123829",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123829"
},
{
"name": "CVE-2026-48937",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-48937"
},
{
"name": "CVE-2026-106071",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-106071"
},
{
"name": "CVE-2026-123872",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123872"
},
{
"name": "CVE-2026-123868",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123868"
},
{
"name": "CVE-2026-123864",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123864"
},
{
"name": "CVE-2026-123862",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123862"
},
{
"name": "CVE-2026-123867",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123867"
},
{
"name": "CVE-2026-123871",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123871"
},
{
"name": "CVE-2026-123863",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123863"
},
{
"name": "CVE-2026-48615",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-48615"
},
{
"name": "CVE-2026-123865",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-123865"
}
],
"initial_release_date": "2026-11-13T00:00:00",
"last_revision_date": "2026-11-13T00:00:00",
"links": [],
"reference": "CERTFR-2026-AVI-1531",
"revisions": [
{
"description": "Version initiale",
"revision_date": "2026-11-13T00:00:00.000000"
}
],
"risks": [
{
"description": "D\u00e9ni de service"
},
{
"description": "Contournement de la politique de s\u00e9curit\u00e9"
},
{
"description": "Atteinte \u00e0 la confidentialit\u00e9 des donn\u00e9es"
}
],
"summary": "De multiples vuln\u00e9rabilit\u00e9s ont \u00e9t\u00e9 d\u00e9couvertes dans Node.js. Certaines d\u0027entre elles permettent \u00e0 un attaquant de provoquer une atteinte \u00e0 la confidentialit\u00e9 des donn\u00e9es, un contournement de la politique de s\u00e9curit\u00e9 et un d\u00e9ni de service.",
"title": "Multiples vuln\u00e9rabilit\u00e9s dans Node.js",
"vendor_advisories": [
{
"published_at": "2026-11-03",
"title": "Bulletin de s\u00e9curit\u00e9 Node.js november-2026-security-releases",
"url": "https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"
}
]
}
CVE-2026-123868 (GCVE-0-2026-123868)
Vulnerability from cvelistv5 – Published: 2026-11-11 18:25 – Updated: 2026-11-11 18:25- CWE-400 - Uncontrolled Resource Consumption
| URL | Tags |
|---|---|
| https://nodejs.org/en/blog/vulnerability/november… | vendor-advisory |
| https://cna.openjsf.org/security-advisories.html |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThan": "24.22.3",
"status": "affected",
"version": "24.0.0",
"versionType": "semver"
},
{
"lessThan": "26.13.1",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "jiri1234"
},
{
"lang": "en",
"type": "remediation developer",
"value": "mcollina"
},
{
"lang": "en",
"type": "coordinator",
"value": "aduh95"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/markdown",
"value": "An unauthenticated HTTP/2 client can exhaust Node.js server memory because inbound DATA queued on an undrained stream is charged to no session budget. Each inbound `DATA` frame creates one JavaScript `Buffer` view in the receiving stream\u0027s readable queue, but nothing charges that queue to `current_session_memory_`: the socket read buffer is accounted only during parsing and released immediately, so whatever stays queued is accounted to nothing. A peer that fills a stream\u0027s receive window with one-byte `DATA` frames pays about 10 wire bytes per frame while the server retains about 114 bytes per frame, so a single stream on one connection can retain hundreds of megabytes from tens of megabytes sent. `maxSessionMemory` neither bounds the growth nor refuses new streams, because `Http2Session::CanAddStream` gates admission on the same counter that never sees the queue. This vulnerability affects Node.js 26.x and 24.x."
}
],
"value": "An unauthenticated HTTP/2 client can exhaust Node.js server memory because inbound DATA queued on an undrained stream is charged to no session budget. Each inbound DATA frame creates one JavaScript Buffer view in the receiving stream\u0027s readable queue, but nothing charges that queue to current_session_memory_: the socket read buffer is accounted only during parsing and released immediately, so whatever stays queued is accounted to nothing. A peer that fills a stream\u0027s receive window with one-byte DATA frames pays about 10 wire bytes per frame while the server retains about 114 bytes per frame, so a single stream on one connection can retain hundreds of megabytes from tens of megabytes sent. maxSessionMemory neither bounds the growth nor refuses new streams, because Http2Session::CanAddStream gates admission on the same counter that never sees the queue. This vulnerability affects Node.js 26.x and 24.x."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 5.9,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.0"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-400",
"description": "Uncontrolled Resource Consumption",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T18:25:01.907Z",
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"shortName": "openjs"
},
"references": [
{
"tags": [
"vendor-advisory"
],
"url": "https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"
},
{
"url": "https://cna.openjsf.org/security-advisories.html"
}
],
"title": "Node.js is vulnerable to an HTTP/2 memory exhaustion denial of service via unaccounted inbound DATA on an undrained stream",
"x_generator": {
"engine": "nodejs-private/security-release publish-cves"
}
}
},
"cveMetadata": {
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"assignerShortName": "openjs",
"cveId": "CVE-2026-123868",
"datePublished": "2026-11-11T18:25:01.907Z",
"dateReserved": "2026-11-06T16:17:16.212Z",
"dateUpdated": "2026-11-11T18:25:01.907Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-123871 (GCVE-0-2026-123871)
Vulnerability from cvelistv5 – Published: 2026-11-11 18:26 – Updated: 2026-11-11 18:26- CWE-209 - Information Exposure Through an Error Message
| URL | Tags |
|---|---|
| https://nodejs.org/en/blog/vulnerability/november… | vendor-advisory |
| https://cna.openjsf.org/security-advisories.html |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThan": "22.23.5",
"status": "affected",
"version": "0.0.0",
"versionType": "semver"
},
{
"lessThan": "24.22.3",
"status": "affected",
"version": "23.0.0",
"versionType": "semver"
},
{
"lessThan": "26.13.1",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "p-v-p"
},
{
"lang": "en",
"type": "remediation developer",
"value": "mcollina"
},
{
"lang": "en",
"type": "remediation reviewer",
"value": "Trott"
},
{
"lang": "en",
"type": "remediation reviewer",
"value": "UlisesGascon"
},
{
"lang": "en",
"type": "remediation reviewer",
"value": "joyeecheung"
},
{
"lang": "en",
"type": "coordinator",
"value": "aduh95"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/markdown",
"value": "Node.js discloses proxy credentials in `ERR_PROXY_INVALID_CONFIG` error messages. CVE-2026-48615 established that a proxy credential must not appear in a Node.js error message and redacted the username and password from `ProxyConfig.href`, but that fix missed four error paths in the same subsystem, one of them inside the same constructor, which interpolate the raw proxy URL, credentials included, into an `ERR_PROXY_INVALID_CONFIG` message. The proxy URL comes from the environment, but the defect is the sink: a secret that Node.js redacts everywhere else is emitted verbatim into a much wider audience than the process environment, such as stderr, container logs, log aggregation, and crash reporting services. This vulnerability affects Node.js 26.x, 24.x, and 22.x."
}
],
"value": "Node.js discloses proxy credentials in ERR_PROXY_INVALID_CONFIG error messages. CVE-2026-48615 established that a proxy credential must not appear in a Node.js error message and redacted the username and password from ProxyConfig.href, but that fix missed four error paths in the same subsystem, one of them inside the same constructor, which interpolate the raw proxy URL, credentials included, into an ERR_PROXY_INVALID_CONFIG message. The proxy URL comes from the environment, but the defect is the sink: a secret that Node.js redacts everywhere else is emitted verbatim into a much wider audience than the process environment, such as stderr, container logs, log aggregation, and crash reporting services. This vulnerability affects Node.js 26.x, 24.x, and 22.x."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 6.2,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.0"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-209",
"description": "Information Exposure Through an Error Message",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T18:26:51.700Z",
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"shortName": "openjs"
},
"references": [
{
"tags": [
"vendor-advisory"
],
"url": "https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"
},
{
"url": "https://cna.openjsf.org/security-advisories.html"
}
],
"title": "Node.js is vulnerable to proxy credential disclosure via ERR_PROXY_INVALID_CONFIG error messages",
"x_generator": {
"engine": "nodejs-private/security-release publish-cves"
}
}
},
"cveMetadata": {
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"assignerShortName": "openjs",
"cveId": "CVE-2026-123871",
"datePublished": "2026-11-11T18:26:51.700Z",
"dateReserved": "2026-11-06T16:18:41.667Z",
"dateUpdated": "2026-11-11T18:26:51.700Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-123872 (GCVE-0-2026-123872)
Vulnerability from cvelistv5 – Published: 2026-11-11 18:30 – Updated: 2026-11-11 18:30- CWE-287 - Improper Authentication - Generic
| URL | Tags |
|---|---|
| https://nodejs.org/en/blog/vulnerability/november… | vendor-advisory |
| https://cna.openjsf.org/security-advisories.html |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThan": "22.23.5",
"status": "affected",
"version": "0.0.0",
"versionType": "semver"
},
{
"lessThan": "24.22.3",
"status": "affected",
"version": "23.0.0",
"versionType": "semver"
},
{
"lessThan": "26.13.1",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "pimterry"
},
{
"lang": "en",
"type": "remediation developer",
"value": "pimterry"
},
{
"lang": "en",
"type": "coordinator",
"value": "aduh95"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/markdown",
"value": "A client certificate authentication bypass in Node.js TLS lets a client change the `servername` during TLS 1.2 renegotiation to reach endpoints it was not authorized for. On a server that applies different client-certificate policies per hostname, for example stricter admin-only client-cert auth on one host and ordinary client-cert auth on another, a client that authenticates for a permitted host can renegotiate the TLS 1.2 connection under a different `servername` and carry its existing authentication to the protected host, bypassing the stricter policy. This vulnerability affects Node.js 26.x, 24.x, and 22.x."
}
],
"value": "A client certificate authentication bypass in Node.js TLS lets a client change the servername during TLS 1.2 renegotiation to reach endpoints it was not authorized for. On a server that applies different client-certificate policies per hostname, for example stricter admin-only client-cert auth on one host and ordinary client-cert auth on another, a client that authenticates for a permitted host can renegotiate the TLS 1.2 connection under a different servername and carry its existing authentication to the protected host, bypassing the stricter policy. This vulnerability affects Node.js 26.x, 24.x, and 22.x."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N",
"version": "3.0"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-287",
"description": "Improper Authentication - Generic",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T18:30:25.193Z",
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"shortName": "openjs"
},
"references": [
{
"tags": [
"vendor-advisory"
],
"url": "https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"
},
{
"url": "https://cna.openjsf.org/security-advisories.html"
}
],
"title": "Node.js is vulnerable to a client certificate authentication bypass via TLS 1.2 renegotiation servername change",
"x_generator": {
"engine": "nodejs-private/security-release publish-cves"
}
}
},
"cveMetadata": {
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"assignerShortName": "openjs",
"cveId": "CVE-2026-123872",
"datePublished": "2026-11-11T18:30:25.193Z",
"dateReserved": "2026-11-06T16:19:31.993Z",
"dateUpdated": "2026-11-11T18:30:25.193Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-123874 (GCVE-0-2026-123874)
Vulnerability from cvelistv5 – Published: 2026-11-11 18:32 – Updated: 2026-11-11 18:32- CWE-416 - Use After Free
| URL | Tags |
|---|---|
| https://nodejs.org/en/blog/vulnerability/november… | vendor-advisory |
| https://cna.openjsf.org/security-advisories.html |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThan": "24.22.3",
"status": "affected",
"version": "24.0.0",
"versionType": "semver"
},
{
"lessThan": "26.13.1",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "Chris Rohlf in collaboration with Claude and Anthropic Research"
},
{
"lang": "en",
"type": "remediation developer",
"value": "mcollina"
},
{
"lang": "en",
"type": "remediation reviewer",
"value": "UlisesGascon"
},
{
"lang": "en",
"type": "coordinator",
"value": "aduh95"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/markdown",
"value": "A use-after-free in Node.js HTTP/2 lets an unauthenticated client corrupt server memory, over both TLS and cleartext, when the server serves files with `respondWithFile()` or `respondWithFD()`. A client can make the server free an `Http2Stream` while a write request that points to it is still queued on the socket; when that write completes, the code dereferences and makes a virtual call through the freed object. The only precondition is that the application serves a file with `stream.respondWithFile()` or `stream.respondWithFD()`, with default settings otherwise. This vulnerability affects Node.js 26.x (since 26.9.0) and 24.x (since 24.22.0)."
}
],
"value": "A use-after-free in Node.js HTTP/2 lets an unauthenticated client corrupt server memory, over both TLS and cleartext, when the server serves files with respondWithFile() or respondWithFD(). A client can make the server free an Http2Stream while a write request that points to it is still queued on the socket; when that write completes, the code dereferences and makes a virtual call through the freed object. The only precondition is that the application serves a file with stream.respondWithFile() or stream.respondWithFD(), with default settings otherwise. This vulnerability affects Node.js 26.x (since 26.9.0) and 24.x (since 24.22.0)."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.0"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-416",
"description": "Use After Free",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T18:32:20.292Z",
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"shortName": "openjs"
},
"references": [
{
"tags": [
"vendor-advisory"
],
"url": "https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"
},
{
"url": "https://cna.openjsf.org/security-advisories.html"
}
],
"title": "Node.js is vulnerable to an HTTP/2 use-after-free via respondWithFile() stream reset during a pending write",
"x_generator": {
"engine": "nodejs-private/security-release publish-cves"
}
}
},
"cveMetadata": {
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"assignerShortName": "openjs",
"cveId": "CVE-2026-123874",
"datePublished": "2026-11-11T18:32:20.292Z",
"dateReserved": "2026-11-06T16:21:26.084Z",
"dateUpdated": "2026-11-11T18:32:20.292Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-123875 (GCVE-0-2026-123875)
Vulnerability from cvelistv5 – Published: 2026-11-11 18:33 – Updated: 2026-11-11 18:33- CWE-476 - NULL Pointer Dereference
| URL | Tags |
|---|---|
| https://nodejs.org/en/blog/vulnerability/november… | vendor-advisory |
| https://cna.openjsf.org/security-advisories.html |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThan": "22.23.5",
"status": "affected",
"version": "0.0.0",
"versionType": "semver"
},
{
"lessThan": "24.22.3",
"status": "affected",
"version": "23.0.0",
"versionType": "semver"
},
{
"lessThan": "26.13.1",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "Chris Rohlf in collaboration with Claude and Anthropic Research"
},
{
"lang": "en",
"type": "remediation developer",
"value": "mcollina"
},
{
"lang": "en",
"type": "coordinator",
"value": "aduh95"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/markdown",
"value": "A NULL pointer dereference in Node.js HTTP/2 lets an unauthenticated client crash the server, over both TLS and cleartext, by cancelling file downloads. When the server serves a file with `stream.respondWithFile()` or `stream.respondWithFD()` and the client cancels the request, a `StreamPipe` used for the transfer is torn down in an order that leaves a NULL pointer which is then dereferenced, aborting the process. No crafted frames are needed, and a handful of cancelled requests against a default file-serving handler is enough. This vulnerability affects Node.js 26.x, 24.x, and 22.x."
}
],
"value": "A NULL pointer dereference in Node.js HTTP/2 lets an unauthenticated client crash the server, over both TLS and cleartext, by cancelling file downloads. When the server serves a file with stream.respondWithFile() or stream.respondWithFD() and the client cancels the request, a StreamPipe used for the transfer is torn down in an order that leaves a NULL pointer which is then dereferenced, aborting the process. No crafted frames are needed, and a handful of cancelled requests against a default file-serving handler is enough. This vulnerability affects Node.js 26.x, 24.x, and 22.x."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 5.9,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.0"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-476",
"description": "NULL Pointer Dereference",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T18:33:57.475Z",
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"shortName": "openjs"
},
"references": [
{
"tags": [
"vendor-advisory"
],
"url": "https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"
},
{
"url": "https://cna.openjsf.org/security-advisories.html"
}
],
"title": "Node.js is vulnerable to an HTTP/2 denial of service via a NULL pointer dereference when a respondWithFile() download is cancelled",
"x_generator": {
"engine": "nodejs-private/security-release publish-cves"
}
}
},
"cveMetadata": {
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"assignerShortName": "openjs",
"cveId": "CVE-2026-123875",
"datePublished": "2026-11-11T18:33:57.475Z",
"dateReserved": "2026-11-06T16:22:28.214Z",
"dateUpdated": "2026-11-11T18:33:57.475Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-123877 (GCVE-0-2026-123877)
Vulnerability from cvelistv5 – Published: 2026-11-11 18:28 – Updated: 2026-11-11 18:28- CWE-295 - Improper Certificate Validation
| URL | Tags |
|---|---|
| https://nodejs.org/en/blog/vulnerability/november… | vendor-advisory |
| https://cna.openjsf.org/security-advisories.html |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThan": "22.23.5",
"status": "affected",
"version": "0.0.0",
"versionType": "semver"
},
{
"lessThan": "24.22.3",
"status": "affected",
"version": "23.0.0",
"versionType": "semver"
},
{
"lessThan": "26.13.1",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "reporter",
"value": "aegis1337 and mickeyjoe"
},
{
"lang": "en",
"type": "remediation developer",
"value": "mcollina"
},
{
"lang": "en",
"type": "coordinator",
"value": "aduh95"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/markdown",
"value": "A certificate validation bypass in Node.js `https.Agent` lets a cached TLS session authenticated under one CA policy be reused by a later request with a stricter policy. `https.Agent.prototype.getName()` assigns the same Agent and session-cache key to a request that omits `ca` and one that explicitly supplies `ca: []`, because an omitted value appends nothing to the key while an empty array stringifies to an empty string. The two policies differ: omitting `ca` uses the default trust store, while supplying `ca` replaces it. Since they share a key, a TLS session authenticated under the broader default policy is handed to a new connection made under the later `ca: []` policy, and TLS 1.3 session resumption carries the earlier authentication forward, so the second request reports `authorized === true` and transmits confidential data to a server its own CA policy would reject on a fresh connection. This vulnerability affects Node.js 26.x, 24.x, and 22.x."
}
],
"value": "A certificate validation bypass in Node.js https.Agent lets a cached TLS session authenticated under one CA policy be reused by a later request with a stricter policy. https.Agent.prototype.getName() assigns the same Agent and session-cache key to a request that omits ca and one that explicitly supplies ca: [], because an omitted value appends nothing to the key while an empty array stringifies to an empty string. The two policies differ: omitting ca uses the default trust store, while supplying ca replaces it. Since they share a key, a TLS session authenticated under the broader default policy is handed to a new connection made under the later ca: [] policy, and TLS 1.3 session resumption carries the earlier authentication forward, so the second request reports authorized === true and transmits confidential data to a server its own CA policy would reject on a fresh connection. This vulnerability affects Node.js 26.x, 24.x, and 22.x."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 6.8,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N",
"version": "3.0"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-295",
"description": "Improper Certificate Validation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T18:28:38.494Z",
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"shortName": "openjs"
},
"references": [
{
"tags": [
"vendor-advisory"
],
"url": "https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"
},
{
"url": "https://cna.openjsf.org/security-advisories.html"
}
],
"title": "Node.js is vulnerable to a certificate validation bypass in https.Agent via cross-policy TLS session reuse",
"x_generator": {
"engine": "nodejs-private/security-release publish-cves"
}
}
},
"cveMetadata": {
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"assignerShortName": "openjs",
"cveId": "CVE-2026-123877",
"datePublished": "2026-11-11T18:28:38.494Z",
"dateReserved": "2026-11-06T16:32:30.304Z",
"dateUpdated": "2026-11-11T18:28:38.494Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-126051 (GCVE-0-2026-126051)
Vulnerability from cvelistv5 – Published: 2026-11-11 18:35 – Updated: 2026-11-11 18:35- CWE-476 - NULL Pointer Dereference
| URL | Tags |
|---|---|
| https://nodejs.org/en/blog/vulnerability/november… | vendor-advisory |
| https://cna.openjsf.org/security-advisories.html |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThan": "24.22.3",
"status": "affected",
"version": "24.0.0",
"versionType": "semver"
},
{
"lessThan": "26.13.1",
"status": "affected",
"version": "25.0.0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "remediation developer",
"value": "pimterry"
},
{
"lang": "en",
"type": "remediation reviewer",
"value": "UlisesGascon"
},
{
"lang": "en",
"type": "coordinator",
"value": "aduh95"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/markdown",
"value": "A deferred-callback use-after-destroy in Node.js TLS server handshake handling allows a remote, unauthenticated attacker to terminate the server process. When a TLS server uses any of the `SNICallback`, `OCSPRequest`, `newSession`, or `resumeSession` hooks, or `server.addContext()`, the corresponding OpenSSL callbacks are deferred, and the deferred code does not handle the underlying socket being destroyed between scheduling and execution. By sending a client hello that reaches the vulnerable path (for example, no SNI together with an OCSP request) followed by padding and a socket FIN, an attacker makes OpenSSL deliver the client hello and the end-of-file in the same tick, so the socket is destroyed before the deferred callback runs and the process raises an uncaught exception instead of emitting an `\u0027error\u0027` event. This vulnerability affects Node.js 26.x and 24.x."
}
],
"value": "A deferred-callback use-after-destroy in Node.js TLS server handshake handling allows a remote, unauthenticated attacker to terminate the server process. When a TLS server uses any of the SNICallback, OCSPRequest, newSession, or resumeSession hooks, or server.addContext(), the corresponding OpenSSL callbacks are deferred, and the deferred code does not handle the underlying socket being destroyed between scheduling and execution. By sending a client hello that reaches the vulnerable path (for example, no SNI together with an OCSP request) followed by padding and a socket FIN, an attacker makes OpenSSL deliver the client hello and the end-of-file in the same tick, so the socket is destroyed before the deferred callback runs and the process raises an uncaught exception instead of emitting an \u0027error\u0027 event. This vulnerability affects Node.js 26.x and 24.x."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
"version": "3.0"
},
"format": "CVSS"
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-476",
"description": "NULL Pointer Dereference",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T18:35:45.777Z",
"orgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"shortName": "openjs"
},
"references": [
{
"tags": [
"vendor-advisory"
],
"url": "https://nodejs.org/en/blog/vulnerability/november-2026-security-releases"
},
{
"url": "https://cna.openjsf.org/security-advisories.html"
}
],
"title": "Node.js is vulnerable to a remotely triggerable uncaught exception in TLS servers via deferred handshake callbacks",
"x_generator": {
"engine": "nodejs-private/security-release publish-cves"
}
}
},
"cveMetadata": {
"assignerOrgId": "ce714d77-add3-4f53-aff5-83d477b104bb",
"assignerShortName": "openjs",
"cveId": "CVE-2026-126051",
"datePublished": "2026-11-11T18:35:45.777Z",
"dateReserved": "2026-11-10T16:56:10.197Z",
"dateUpdated": "2026-11-11T18:35:45.777Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-48615 (GCVE-0-2026-48615)
Vulnerability from cvelistv5 – Published: 2026-06-26 01:14 – Updated: 2026-06-26 13:35- CWE-359 - Privacy Violation
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-48615",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-06-26T13:34:45.532887Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-06-26T13:35:00.592Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThanOrEqual": "22.22.3",
"status": "affected",
"version": "22.22.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "24.16.0",
"status": "affected",
"version": "24.16.0",
"versionType": "semver"
},
{
"lessThanOrEqual": "26.3.0",
"status": "affected",
"version": "26.3.0",
"versionType": "semver"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "A flaw in Node.js proxy tunnel error handling could expose proxy credentials in `ERR_PROXY_TUNNEL` error messages.\r\n\r\nWhen proxy credentials are embedded in the proxy URL, they may be exposed through error handling paths and captured by logs, diagnostics, or other error consumers.\r\n\r\nThis vulnerability affects all supported release lines: **Node.js 22**, **Node.js 24**, and **Node.js 26**."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 5.9,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N",
"version": "3.0"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-359",
"description": "CWE-359 Privacy Violation",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-06-26T01:14:36.524Z",
"orgId": "36234546-b8fa-4601-9d6f-f4e334aa8ea1",
"shortName": "hackerone"
},
"references": [
{
"url": "https://nodejs.org/en/blog/vulnerability/june-2026-security-releases"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "36234546-b8fa-4601-9d6f-f4e334aa8ea1",
"assignerShortName": "hackerone",
"cveId": "CVE-2026-48615",
"datePublished": "2026-06-26T01:14:36.524Z",
"dateReserved": "2026-05-22T15:00:09.276Z",
"dateUpdated": "2026-06-26T13:35:00.592Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-48937 (GCVE-0-2026-48937)
Vulnerability from cvelistv5 – Published: 2026-06-18 18:01 – Updated: 2026-06-18 18:44- CWE-400 - Uncontrolled Resource Consumption
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-48937",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-06-18T18:43:55.210236Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-06-18T18:44:02.018Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "node",
"vendor": "nodejs",
"versions": [
{
"lessThanOrEqual": "22.22.3",
"status": "affected",
"version": "22.22.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "24.16.0",
"status": "affected",
"version": "24.16.0",
"versionType": "semver"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "A flaw in Node.js HTTP/2 server API can cause servers to keep accepting data even after sending a `GOAWAY` frame. This vulnerability affects two supported release lines: **Node.js 22** and **Node.js 24**."
}
],
"metrics": [
{
"cvssV3_0": {
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L",
"version": "3.0"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-400",
"description": "CWE-400 Uncontrolled Resource Consumption",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-06-18T18:01:39.780Z",
"orgId": "36234546-b8fa-4601-9d6f-f4e334aa8ea1",
"shortName": "hackerone"
},
"references": [
{
"url": "https://nodejs.org/en/blog/vulnerability/june-2026-security-releases"
},
{
"url": "https://hackerone.com/reports/3658225"
}
]
}
},
"cveMetadata": {
"assignerOrgId": "36234546-b8fa-4601-9d6f-f4e334aa8ea1",
"assignerShortName": "hackerone",
"cveId": "CVE-2026-48937",
"datePublished": "2026-06-18T18:01:39.780Z",
"dateReserved": "2026-05-26T15:00:06.427Z",
"dateUpdated": "2026-06-18T18:44:02.018Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
How durations are calculated
Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.
Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.