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

Bloquea el fetch que alcanza tu endpoint de metadatos.

Una petición del lado del servidor a una URL proporcionada por el usuario puede pivotar a 169.254.169.254 y robar credenciales cloud. La IA lo escribe cuando una función «obtiene una URL que da el usuario». SlopGrade lo bloquea en CI antes del merge.

CWE-918
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

Una URL controlada por el usuario, fetcheada del lado del servidor.

Nada valida el host, así que un atacante lo apunta al servicio de metadatos cloud o a un panel de admin interno. Una allowlist del destino lo arregla — el gate bloquea el fetch sin allowlist.

Lo que la IA envió

api/proxy.ts — fetch a una URL de usuario
const r = await fetch(req.query.url) // hits 169.254.169.254

Lo que sale de tu runner

CWE-918
{ "file": "api/proxy.ts", "line": 12, "kind": "ssrf" }

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

¿Y si la URL está parcialmente validada?

Una allowlist de destino (esquema + host) se reconoce como segura. Un simple control de protocolo (startsWith https) no lo es — sigue permitiendo hosts internos. El gate está calibrado a esa distinción.

¿Qué lenguajes?

JavaScript/TypeScript y Python para la clase completa; Go y .NET cubren los patrones fetch/cliente-HTTP centrales.