CVE-2026-9277
shell-quote quote() non valida le forme dei token oggetto, consentendo l'iniezione di comandi tramite terminatori di riga in .op
- Pubblicato
- 22 mag 2026
- Aggiornato
- 14 set 2026
- Assegnazione CNA
- harborist
- Evidenza osservata
- 17 ago 2026
CVSS primario
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XBasso · prossimi 30 giorni
- Percentile
- 56,1%
- Data del modello
- 21 set 2026
L'EPSS è una stima statistica, non una certezza o una misura di impatto. Combinalo con CVSS, stato KEV, esposizione e ambiente.
Riepilogo
La funzione `quote()` di shell-quote non validava gli input di token-oggetto rispetto al modello di operatori utilizzato da `parse()`. Il campo `.op` veniva sottoposto a escape con barra rovesciata carattere per carattere usando `/(.)/g`, che in JavaScript non corrisponde ai terminatori di riga (\n, \r, U+2028, U+2029). Un terminatore di riga in `.op` quindi passava senza escape nell'output; le shell POSIX trattano un newline letterale come separatore di comandi, quindi qualsiasi contenuto successivo verrebbe eseguito come secondo comando. Il percorso di codice vulnerabile è raggiungibile in due modi: (1) costruzione diretta di `{ op: '...\n...' }` da input esterno, e (2) tramite `parse(cmd, envFn)` quando `envFn` restituisce token-oggetto il cui `.op` è influenzato dall'attaccante. Entrambi sono superficie API documentata. Corretto sostituendo l'escape per carattere con una validazione rigorosa della forma: `.op` deve corrispondere alla allowlist degli operatori di controllo del parser; `{ op: 'glob', pattern }` valida `pattern` e vieta i terminatori di riga; `{ comment }` valida `comment` e vieta i terminatori di riga; qualsiasi altra forma di oggetto genera `TypeError`.
Fonti
1Proof-of-concept exploit per CVE-2026-9277, una vulnerabilità di command injection nella libreria shell-quote. Esegue una traversata JSON ricorsiva con mutazione combinatoria per innescare RCE, supportando verifica OOB e registrazione a rumore zero.
Utilizzo responsabile
Utilizza le informazioni sulla vulnerabilità solo sui sistemi che possiedi o che sei autorizzato a testare. Kitploit si collega ai metadati della ricerca pubblica e non memorizza codici exploit o payload dannosi.