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

Detecta la inyección SQL antes de que llegue a main.

El SQL concatenado es la brecha más antigua del oficio — y la IA lo escribe más rápido de lo que nadie puede revisarlo. SlopGrade lee cada PR en tu propio runner y bloquea la consulta que construye SQL a partir de entrada de usuario, antes del merge.

CWE-89
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, concatenada directo en una consulta.

El id de la petición se pega en la cadena SQL. Un id forjado como 1 OR 1=1 vuelca la tabla; una subconsulta exfiltra otra tabla. Las consultas parametrizadas lo arreglan — el gate garantiza que la versión sin parametrizar nunca se mergee.

Lo que la IA envió

api/users.ts — entrada de usuario en la cadena SQL
db.query('SELECT * FROM users WHERE id = ' + req.params.id)

Lo que sale de tu runner

CWE-89
{ "file": "api/users.ts", "line": 12, "kind": "sql-injection" }

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é cuenta como inyección SQL aquí?

Cualquier consulta construida concatenando o interpolando entrada no confiable en la cadena SQL, en JS/TS, Python, Go o .NET — a través de los drivers comunes y las vías raw-query de los ORM. Las consultas parametrizadas/preparadas pasan.

¿Marcará consultas parametrizadas seguras?

Los placeholders ($1, ?, :name) y los query builders que parametrizan se reconocen como seguros. La puerta solo bloquea lo que introduce el pull request; sobre 52 089 pull requests open source ordinarios, bloqueó 59 (0,11 %). Empieza en advisory para comprobarlo, luego pasa a bloqueante.