SlopGradeby Maxor Global LLC
Se connecterDémarrer
Gate auth · CWE-798

Empêchez une clé live d'atteindre l'historique git.

L'IA colle une vraie clé « juste pour tester » et elle atterrit dans un commit — où elle vit pour toujours, même après avoir supprimé la ligne. SlopGrade attrape le secret en dur dans la PR, avant le merge, et n'émet que sa localisation — jamais la valeur.

CWE-798
Catalogue des gates
0
file content leaves CI
0
false positives · 5,000+ repos
JS/TS · Python · Go · .NET
Langages
Le bug

Une clé de production, commitée dans le code.

Le secret est maintenant dans le repo et son historique git — une rotation est le seul vrai correctif, et chaque clone en a une copie. Le gate l'arrête à la PR pour qu'aucune rotation ne soit jamais nécessaire.

Ce que l'IA a livré

config/stripe.ts — un secret live dans le code
const stripe = new Stripe('sk_live_4eC39HqLyjWDarjtT1zdp7dc')

Ce qui quitte votre runner

CWE-798
{ "file": "config/stripe.ts", "line": 12, "kind": "hardcoded-secret" }

Même une détection de secret n'émet que {file, line, kind} — jamais la valeur du secret. 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

La valeur du secret est-elle envoyée quelque part ?

Non. Même sur une détection, seuls la localisation et le type sont émis — jamais la valeur. Lancez --print-payload pour voir les octets exacts. C'est tout l'intérêt du design 0-exfiltration.

Et les clés de test / placeholder ?

Les formes reconnues de secrets live (préfixes fournisseur, tokens à haute entropie) sont signalées ; les placeholders évidents et les clés de test sont calibrés hors. 0 faux positif sur 5 000+ repos.