[TLP:CLEAR]
bollettino di sicurezza 2026/0253
Aggiornamenti Node.js
26-10-2026
nodejs, google-brotli, tls, dns, buffer-overflow, permission-model
descrizione
Il progetto Node.js ha pubblicato aggiornamenti di sicurezza per le versioni 22.x, 24.x e 26.x, correggendo diverse vulnerabilità di severità fino a High, oltre ad aggiornare alcune dipendenze di terze parti (tra cui OpenSSL, c-ares, SQLite e Undici).Le 10 vulnerabilità analizzate coprono le seguenti tipologie:
- Buffer overflow in decoder Brotli (CWE-787) con possibile esecuzione di codice arbitrario su stream compressi malevoli
- Troncamento silenzioso di hostname con byte NUL nella risoluzione DNS tramite c-ares, con bypass di validazione su allowlist
- Validazione impropria del certificato TLS (CWE-295): tre distinte varianti di bypass della verifica hostname/IP in tls.checkServerIdentity()
- Race condition TOCTOU nel riuso connessioni HTTP Agent, con possibile accettazione di risposte non sollecitate
- Entropia insufficiente in snapshot applicativi: cache UUID/randomInt serializzata in snapshot, con valori prevedibili e collisioni cross-process
- Restituzione di byte non appartenenti all'entry richiesta nell'API zlib.ZipFile su archivi con header incoerenti
- Bypass del Permission Model su fs.realpathSync() e su regole wildcard del radix tree
5 CVE hanno priorità operativa critical.
Al momento della pubblicazione di questo bollettino, non risultano CVE nel catalogo CISA KEV né exploit in the wild, ma sono stati pubblicati su GitHub repository che dichiarano di contenere proof-of-concept per Per CVE-2026-111497.
note
Vettori di attacco e condizioni di sfruttamentoLe CVE relative a Node.js presentano vettori eterogenei.
CVE-2026-111497 (Google Brotli, CVSS 4.0) è sfruttabile via rete (AV:N), senza privilegi (PR:N) né interazione utente (UI:N), ma lo sfruttamento dipende da condizioni specifiche (AT:P): il prerequisito dichiarato è che l'applicazione decomprima con node:zlib dati Brotli forniti dall'attaccante.
CVE-2026-105482, CVE-2026-105483, CVE-2026-106069, CVE-2026-105481, CVE-2026-106074 e CVE-2026-106070 sono tutte AV:N, AC:H, PR:N, UI:N — attacco via rete senza privilegi ma con alta complessità.
CVE-2026-106072 è AV:N, AC:L, PR:H, UI:N — accesso in rete con bassa complessità, ma richiede privilegi elevati.
CVE-2026-106073 e CVE-2026-106071 sono entrambe AV:L — sfruttamento locale, richiedono un utente con privilegi limitati (PR:L).
Analisi delle prime 5 CVE con priorità operativa critical
CVE-2026-111497: buffer overflow in c/dec/decode.c del decoder Google Brotli (versioni 1.0.3–1.2.0); un attaccante remoto non autenticato può corrompere memoria adiacente, divulgare contenuti in memoria, causare denial of service o potenzialmente eseguire codice arbitrario tramite uno stream Brotli malevolo; lo sfruttamento richiede che l'applicazione decomprima con node:zlib dati Brotli forniti dall'attaccante (condizione AT:P della specifica CVSS 4.0). EPSS: 36.027%, percentile 98.46%.
CVE-2026-105482: le funzioni dns.resolve() e dns.reverse() passano l'hostname a c-ares come stringa C, troncandolo silenziosamente al primo byte NUL; un'applicazione che valida un hostname contro una allowlist e poi lo risolve con dns.resolve() può agire sui record di un dominio diverso da quello validato. Questa è una correzione incompleta di CVE-2026-48930.
CVE-2026-106072: tls.checkServerIdentity() non classifica come indirizzi IP le rappresentazioni non canoniche di IPv4 (notazione ottale, esadecimale, intera, forma abbreviata); un certificato con DNS SAN numerico emesso da una CA trusted dal client può autenticare connessioni a endpoint IP per cui non è stato emesso, purché il resolver di piattaforma accetti tali notazioni.
CVE-2026-105483: regressione introdotta dopo la correzione di CVE-2026-48618; tls.checkServerIdentity() non riconosce come indirizzi IP gli hostname contenenti cifre fullwidth Unicode (es. 127.0.0.1), confrontandoli contro DNS SAN e Common Name anziché contro IP SAN; un certificato con DNS:127.0.0.1 o DNS:*.0.0.1 può essere accettato per un endpoint IP per cui non è stato emesso.
CVE-2026-106069: tls.checkServerIdentity() normalizza gli ottetti IPv4 con zero iniziale secondo le regole WHATWG URL (lettura ottale), mentre il resolver di sistema su alcune piattaforme (es. macOS) li interpreta in decimale; il disallineamento consente a un server di autenticarsi con un certificato emesso per un indirizzo IP diverso da quello effettivamente connesso.
Scope e impatto
Tutte le CVE con vettore CVSS 3.1 presentano scope unchanged (S:U).
CVE-2026-105483, CVE-2026-106069 e CVE-2026-105482 hanno impatto C:H/I:H/A:N.
CVE-2026-106072 ha impatto C:H/I:H/A:L.
CVE-2026-105481 ha impatto C:L/I:H/A:N.
CVE-2026-106074 ha impatto C:L/I:L/A:N.
CVE-2026-106070 ha impatto C:N/I:L/A:N.
CVE-2026-106073 ha impatto C:L/I:N/A:N.
CVE-2026-106071 ha impatto C:L/I:L/A:N.
CVE-2026-111497 (CVSS 4.0) ha impatto sul sistema vulnerabile VC:H/VI:H/VA:H e nessun impatto sui sistemi successivi (SC:N/SI:N/SA:N).
Mitigazioni
Il progetto Node.js indica come impattati i rami 22.x, 24.x e 26.x e ha rilasciato le versioni corrette 22.23.4, 24.22.1 e 26.12.1.
CVE-2026-106070 e CVE-2026-106071 riguardano il solo ramo 26.x.
CVE-2026-105483 i rami 26.x e 24.x; le altre vulnerabilità tutti e tre i rami.
L'advisory non indica workaround né mitigazioni alternative all'aggiornamento.
CVE
| CVE | CVSS | EPSS | priority | 0-day |
|---|---|---|---|---|
| CVE-2026-111497 | 4.0: 9.2/critical | 36.027% | 98.46% | 18.3/critical | sì |
| CVE-2026-105482 | 3.1: 7.4/high | 0.424% | 36.42% | 11.6/critical | no |
| CVE-2026-106072 | 3.1: 6.7/medium | 0.548% | 45.65% | 11.1/critical | no |
| CVE-2026-105483 | 3.1: 7.4/high | 0.275% | 19.78% | 9.7/critical | no |
| CVE-2026-106069 | 3.1: 7.4/high | 0.275% | 19.78% | 9.7/critical | no |
| CVE-2026-105481 | 3.1: 6.5/medium | 0.306% | 23.18% | 8.9/high | no |
| CVE-2026-106074 | 3.1: 4.8/medium | 0.319% | 24.65% | 6.7/high | no |
| CVE-2026-106070 | 3.1: 3.7/low | 0.367% | 30.74% | 5.5/medium | no |
| CVE-2026-106073 | 3.1: 3.3/low | 0.245% | 15.59% | 4.0/medium | no |
| CVE-2026-106071 | 3.1: 3.6/low | 0.193% | 8.84% | 3.5/medium | no |
NOTA: Le vulnerabilità sono ordinate per priorità operativa, calcolata combinando la gravità teorica (CVSS) con la probabilità reale di sfruttamento (EPSS). Se il dato EPSS non è ancora disponibile, la priorità è calcolata sul solo score CVSS.
Approfondisci
elenco vulnerabilità
| CWE | descrizione |
|---|---|
| CWE-284 | Improper Access Control |
| CWE-295 | Improper Certificate Validation |
| CWE-252 | Unchecked Return Value |
| CWE-787 | Out-of-bounds Write |
| CWE-367 | Time-of-check Time-of-use (TOCTOU) Race Condition |
| CWE-330 | Use of Insufficiently Random Values |
prodotti impattati
| vendor | prodotto & versioni |
|---|---|
| Node.js |
node
|