SlopGradeby Maxor Global LLC
Se connecterDémarrer
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
file content leaves CI
0
false positives · 5,000+ repos
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. Le contenu du fichier ne sort jamais. Auditez-le avec --print-payload.

Comment le gate l'attrape

Détecte → adapte → vérifie. 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, 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, correctif vérifié en local

Le constat est posté sur sa ligne exacte. Quand un correctif existe, il est généré ET vérifié dans votre runner — proposé seulement une fois qu'un re-scan prouve la disparition.

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.