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. El contenido del archivo nunca sale. Audítalo con --print-payload.
Detecta → adapta → verifica. 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, 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, corrección verificada en local
El hallazgo se publica en su línea exacta. Cuando existe una corrección, se genera Y se verifica en tu runner — solo se ofrece cuando un re-escaneo prueba que desapareció.
¿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.