CVE-2026-9277
shell-quote quote() não valida as formas dos tokens de objeto, permitindo injeção de comandos via terminadores de linha em .op
- Publicado
- 22 de mai. de 2026
- Atualizado
- 14 de set. de 2026
- Atribuindo CNA
- harborist
- Evidência observada
- 17 de ago. de 2026
CVSS primário
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:XBaixo · próximos 30 dias
- Percentil
- 56,1%
- Data do modelo
- 21 de set. de 2026
EPSS é uma estimativa estatística, não uma certeza ou uma medida de impacto. Combine-o com CVSS, status KEV, exposição e seu ambiente.
Resumo
A função `quote()` do shell-quote não validava entradas de token-objeto contra o modelo de operador usado por `parse()`. O campo `.op` era escapado com barra invertida caractere por caractere usando `/(.)/g`, que em JavaScript não corresponde a terminadores de linha (\n, \r, U+2028, U+2029). Um terminador de linha em `.op` passava, portanto, sem escape para a saída; shells POSIX tratam uma nova linha literal como separador de comandos, então qualquer conteúdo após ela seria executado como um segundo comando. O caminho de código vulnerável é alcançável de duas formas: (1) construção direta de `{ op: '...\n...' }` a partir de entrada externa, e (2) via `parse(cmd, envFn)` quando `envFn` retorna tokens-objeto cujo `.op` é influenciado pelo atacante. Ambas são superfícies de API documentadas. Corrigido substituindo o escape por caractere por validação estrita de formato: `.op` deve corresponder à lista de permissões de operadores de controle do parser; `{ op: 'glob', pattern }` valida `pattern` e proíbe terminadores de linha; `{ comment }` valida `comment` e proíbe terminadores de linha; qualquer outro formato de objeto lança `TypeError`.
Fontes
1Exploit de prova de conceito para CVE-2026-9277, uma vulnerabilidade de injeção de comandos na biblioteca shell-quote. Realiza travessia JSON recursiva com mutação combinatória para acionar RCE, suportando verificação OOB e registro sem ruído.
Uso responsável
Use informações de vulnerabilidade apenas em sistemas que você possui ou está autorizado a testar. O Kitploit vincula-se a metadados de pesquisa pública e não armazena código de exploração ou cargas maliciosas.