SlopGradeby Maxor Global LLC
Se connecterDémarrer l'essai gratuit de 14 jours
Gate injection · CWE-611

Bloquez le parseur XML qui lit vos fichiers.

Quand un parseur XML résout les entités externes, un document forgé lit /etc/passwd ou atteint une URL interne. L'IA l'active en copiant une config de parseur permissive. SlopGrade bloque le parse non sûr en CI, avant le merge.

CWE-611
Catalogue des gates
0
lignes de code stockées
MIT
client open source — lisez chaque ligne
JS/TS · Python · Java · .NET
Langages
Le bug

Un parseur XML avec les entités externes activées.

Le parseur reçoit l'ordre de résoudre les entités, donc un <!ENTITY> pointant vers un fichier ou une URL est expansé. Désactiver la résolution d'entités (le défaut sûr dans la plupart des libs) corrige ça — le gate bloque la config qui la réactive.

Ce que l'IA a livré

lib/import.ts — résolution d'entités activée
libxml.parseXml(body, { noent: true }) // external entities on

Ce qui quitte votre runner

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

Chemin, ligne, classe. Sur un repo privé, le contenu du fichier reste sur le runner par défaut ; le deep scan (heisen-slop) est une option payante. Auditez-le avec --print-payload.

Comment le gate l'attrape

Détecte → adapte → vérifie. Par défaut, rien d'autre ne sort.

01 · DÉTECTE

Dans votre runner, sur le diff

Le client open source parcourt la pull request et signale le motif en local — dataflow intra-fonction. Par défaut, aucun code ne quitte la machine.

→
02 · ADAPTE

Verdict serveur + gate

L'empreinte structurelle est classée côté serveur. Un hit dur bloque le check sur un repo privé payant ; les repos publics sont gatés gratuitement ; le paywall échoue en mode ouvert.

→
03 · VÉRIFIE

Posté inline, re-vérifié au push

Le constat est posté sur sa ligne exacte. Pour les quelques classes qui ont une réécriture sûre et déterministe (vérification TLS coupée, debug actif, yaml.load…), un correctif est généré ET vérifié dans votre runner ; sinon vous corrigez, et le push suivant re-vérifie.

→
Les questions des équipes

Le XXE n'est-il pas désactivé par défaut désormais ?

Les parseurs modernes sont sûrs par défaut, mais l'IA copie souvent de vieux snippets qui réactivent explicitement les entités (noent: true, FEATURE_SECURE_PROCESSING off). Le gate signale exactement ces configs de réactivation.

Quels parseurs sont couverts ?

Les bibliothèques XML courantes en JS/TS, Python, Java et .NET — celles dont la configuration non sûre tient à un seul flag.