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

Bloquea el parser XML que lee tus archivos.

Cuando un parser XML resuelve entidades externas, un documento forjado lee /etc/passwd o alcanza una URL interna. La IA lo activa copiando una config de parser permisiva. SlopGrade bloquea el parseo inseguro en CI, antes del merge.

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

Un parser XML con entidades externas activadas.

Al parser se le indica resolver entidades, así que un <!ENTITY> que apunta a un archivo o URL se expande. Desactivar la resolución de entidades (el default seguro en la mayoría de libs) lo arregla — el gate bloquea la config que lo reactiva.

Lo que la IA envió

lib/import.ts — resolución de entidades activada
libxml.parseXml(body, { noent: true }) // external entities on

Lo que sale de tu runner

CWE-611
{ "file": "lib/import.ts", "line": 12, "kind": "xxe" }

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

¿No está el XXE desactivado por defecto ahora?

Los parsers modernos son seguros por defecto, pero la IA copia a menudo snippets viejos que reactivan explícitamente las entidades (noent: true, FEATURE_SECURE_PROCESSING off). El gate marca exactamente esas configs de reactivación.

¿Qué parsers están cubiertos?

Las bibliotecas XML comunes en JS/TS, Python, Java y .NET — aquellas cuya configuración insegura es un cambio de un solo flag.