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.
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ó
Lo que sale de tu runner
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.
Detecta → adapta → verifica. Por defecto, nada más sale.
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.
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.
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.
¿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.