SlopGradeby Maxor Global LLC
Iniciar sesiónEmpieza la prueba gratis de 14 días
Gate auth · CWE-798

Evita que una clave live llegue al historial git.

La IA pega una clave real «solo para probar» y aterriza en un commit — donde vive para siempre, incluso tras borrar la línea. SlopGrade atrapa el secreto codificado en la PR, antes del merge, y emite solo su ubicación — nunca el valor.

CWE-798
Catálogo de gates
0
líneas de código almacenadas
MIT
cliente open source — lee cada línea
JS/TS · Python · Go · .NET
Lenguajes
El bug

Una clave de producción, commiteada en el código.

El secreto está ahora en el repo y su historial git — una rotación es la única corrección real, y cada clon tiene una copia. El gate lo detiene en la PR para que nunca haga falta rotar.

Lo que la IA envió

config/stripe.ts — un secreto live en el código
const stripe = new Stripe('sk_live_4eC39HqLyjWDarjtT1zdp7dc')

Lo que sale de tu runner

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

Incluso una coincidencia de secreto emite solo {file, line, kind} — nunca el valor del secreto. Audítalo con --print-payload.

Cómo lo detecta el gate

Detecta → adapta → verifica. Por defecto, nada más sale.

01 · DETECTA

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.

→
02 · ADAPTA

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.

→
03 · VERIFICA

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.

→
Preguntas que hacen los equipos

¿El valor del secreto se envía a algún sitio?

No. Incluso en una coincidencia, solo se emiten la ubicación y el tipo — nunca el valor. Ejecuta --print-payload para ver los bytes exactos. El código sale solo con el deep scan opt-in (heisen-slop), en un repo de pago.

¿Y las claves de prueba / placeholder?

Las formas reconocidas de secretos live (prefijos de proveedor, tokens de alta entropía) se marcan; los placeholders obvios y las claves de test se calibran fuera. Solo bloquea lo que introduce el pull request; sobre 52 089 pull requests open source ordinarios, la puerta estática bloqueó 59 (0,11 %).