CVE-2026-9277
shell-quote quote() no valida las formas de los tokens de objeto, lo que permite la inyección de comandos mediante terminadores de línea en .op
- Publicado
- 22 may 2026
- Actualizado
- 14 sept 2026
- Asignación de CNA
- harborist
- Evidencia observada
- 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:XBajo · próximos 30 días
- Percentil
- 56,5 %
- Fecha del modelo
- 15 oct 2026
EPSS es una estimación estadística, no una certeza o una medida de impacto. Combínelo con CVSS, estado KEV, exposición y su entorno.
Resumen
La función 'quote()' de shell-quote no validaba las entradas de token de objeto contra el modelo de operador utilizado por 'parse()'. El campo '.op' se escapaba con barra invertida carácter por carácter usando '/(.)/g', lo que en JavaScript no coincide con los terminadores de línea ('\n', '\r', 'U+2028', 'U+2029'). Un terminador de línea en '.op' por lo tanto pasaba sin escapar a la salida; los shells POSIX tratan un salto de línea literal como un separador de comandos, por lo que cualquier contenido después de él se ejecutaría como un segundo comando. La ruta de código vulnerable es alcanzable de dos maneras: (1) construcción directa de '{ op: '...\n...' }' desde entrada externa, y (2) a través de 'parse(cmd, envFn)' cuando 'envFn' devuelve tokens de objeto cuyo '.op' está influenciado por el atacante. Ambas son superficies de API documentadas. Solucionado reemplazando el escape por carácter con validación estricta de forma: '.op' debe coincidir con la lista de permitidos de operadores de control del analizador; '{ op: 'glob', pattern }' valida 'pattern' y prohíbe los terminadores de línea; '{ comment }' valida 'comment' y prohíbe los terminadores de línea; cualquier otra forma de objeto lanza 'TypeError'.
Fuentes
Exploit de prueba de concepto para CVE-2026-9277, una vulnerabilidad de inyección de comandos en la biblioteca shell-quote. Realiza un recorrido JSON recursivo con mutación combinatoria para desencadenar RCE, compatible con verificación OOB y registro sin ruido.
Uso responsable
Utilice información sobre vulnerabilidades solo en sistemas de su propiedad o que esté autorizado a probar. Kitploit enlaza con metadatos de investigación pública y no almacena código de explotación ni cargas útiles maliciosas.