SlopGradeby Maxor Global LLC
Iniciar sesiónEmpieza la prueba gratis de 14 días
Gate inyección · CWE-22

Evita que ../ escape de tu directorio de archivos.

Cuando la entrada de usuario se une a una ruta de archivo sin normalización, un nombre como ../../etc/passwd escapa del directorio previsto. La IA lo escribe en cualquier función de «servir/descargar un archivo». SlopGrade lo bloquea en CI, antes del merge.

CWE-22
Catálogo de gates
0
líneas de código almacenadas
MIT
cliente open source — lee cada línea
JS/TS · Python · Go · .NET
Lenguajes
El bug

Entrada de usuario, unida directo en una ruta de archivo.

No hay una resolución-y-verificación de que la ruta final se quede dentro del directorio base, así que los segmentos ../ salen. Resolver y verificar el prefijo lo arregla — el gate bloquea la unión sin verificar.

Lo que la IA envió

api/files.ts — entrada de usuario en la ruta
fs.readFile('./files/' + req.params.name) // ../ escapes

Lo que sale de tu runner

CWE-22
{ "file": "api/files.ts", "line": 12, "kind": "path-traversal" }

Ruta, línea, clase. En un repo privado, el contenido del archivo se queda en el runner por defecto; el deep scan (heisen-slop) es una opción de pago. Audítalo con --print-payload.

Cómo lo detecta el gate

Detecta → adapta → verifica. Por defecto, nada más sale.

01 · DETECTA

En tu runner, sobre el diff

El cliente open source recorre la pull request y marca el patrón en local — dataflow intra-función. Por defecto, ningún código sale de la máquina.

→
02 · ADAPTA

Veredicto del servidor + gate

La huella estructural se clasifica en el servidor. Un hit duro bloquea el check en un repo privado de pago; los repos públicos se gatean gratis; el paywall falla en abierto.

→
03 · VERIFICA

Publicado inline, re-verificado en el push

El hallazgo se publica en su línea exacta. Para las pocas clases con una reescritura segura y determinista (verificación TLS desactivada, debug activo, yaml.load…), se genera Y se verifica una corrección en tu runner; si no, corriges tú y el siguiente push re-verifica.

→
Preguntas que hacen los equipos

¿Qué hace segura una unión de ruta?

Resolver la ruta y verificar que sigue empezando por el directorio base previsto (o usar un mapa fijo de nombres permitidos). El gate reconoce esa verificación y la deja pasar; la unión desnuda se marca.

¿Cubre también las subidas?

El lado escritura (zip-slip, rutas de subida sin restringir) lo cubren clases de gate adyacentes en el firewall completo; la clase de esta página es la traversía en lectura/servicio. Ver el catálogo completo para el resto.