Solo los fallos que un atacante puede alcanzar.
Cada hallazgo seguido desde el punto de entrada hasta la línea, con su corrección.
- AltaInyección SQLusers.controller.ts:10
db.query(`SELECT * FROM users WHERE id=${id}`)db.query("SELECT * FROM users WHERE id = $1", [id])Corrección listaConsulta parametrizada, reescrita en la misma sesión
Fallos alcanzables, cada uno con su corrección.
Fallos alcanzables
- GET /users/:id
- users.controller.ts:10
- db.query()
Tu política
- Equipo de Pagos Bloquear en la pull request
- Equipo de Growth Solo avisar
Flujos de datos que conocen tu framework
- Expressreq.params.id
- Djangorequest.GET["id"]
- Spring@PathVariable id
Una corrección con cada hallazgo
Un parche en tu editor, o una pull request firmada con un test de regresión.
Nueve de cada diez alertas por patrón son falsas.
de las vulnerabilidades que señalaron los escáneres basados en patrones en casi 3000 repositorios open source eran falsos positivos.
Ghost Security, Exorcising the SAST Demons, 2025
Un escáner por patrones
- Alerta: Posible inyección SQLusers.controller.ts:10
- Alerta: Posible inyección SQLPOST /avatar
- Alerta: Posible inyección SQLGET /export
CybeDefend
- Alcanzable: Inyección SQLusers.controller.ts:10
- Descartado: Línea señalada, no llega a ningún sinkPOST /avatar
- Descartado: Línea señalada, no llega a ningún sinkGET /export
Corregido por tu agente, antes del commit.
Tu agente lee estos hallazgos mientras escribe y los corrige antes del commit.
- SASTEscanea el repositorio en cada push.Detectado
- VibeDefendLe pasa el hallazgo a tu agente de código.Servido
- Tu agenteLo corrige en la sesión.Corregido
- CommitEntra sin el fallo.Limpio
Claude Code
Cursor
WindsurfGitHub Copilot
OpenAI Codex
Empieza por un repositorio.
Conecta GitHub, GitLab, Bitbucket o Azure DevOps, elige un repositorio y el primer escaneo arranca.
En detalle
Cada hallazgo: el camino, la línea, la corrección.
Fallos alcanzables
La ruta de explotación
Flujos de datos que conocen tu framework
Una corrección con cada hallazgo
Tu política
Todo lo que revisa
Lo que ve nuestro SAST y el tuyo no.
Un hallazgo real por lenguaje, con la línea señalada y su corrección.
- AltaCWE-79
JavaScript (Express)
res.send(`<h1>Hi ${req.query.name}</h1>`);res.send(`<h1>Hi ${escapeHtml(req.query.name)}</h1>`); - AltaCWE-639
TypeScript (Fastify)
return db.invoice.findUnique({ where: { id } });return db.invoice.findFirst({ where: { id, ownerId: req.user.id } }); - CríticaCWE-89
Python (Django)
cursor.execute(f"SELECT * FROM books WHERE title = '{q}'")cursor.execute("SELECT * FROM books WHERE title = %s", [q]) - AltaCWE-22
Go (Gin)
c.File(filepath.Join("uploads", name))c.File(filepath.Join("uploads", filepath.Base(name)))
12 lenguajes más, un hallazgo en cada uno
- AltaCWE-611
Java (Spring)
var doc = dbf.newDocumentBuilder().parse(f.getInputStream());dbf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); - AltaCWE-916
Kotlin (Spring)
val md = MessageDigest.getInstance("MD5")users.save(form.email, encoder.encode(form.password)) - MediaCWE-601
C# / .NET (ASP.NET)
return Redirect(returnUrl);return LocalRedirect(returnUrl); - AltaCWE-915
Ruby (Rails)
@user.update(params.require(:user).permit!)@user.update(params.require(:user).permit(:name, :email)) - CríticaCWE-502
PHP (Laravel)
$cart = unserialize($request->cookie('cart'));$cart = json_decode($request->cookie('cart'), true); - CríticaCWE-78
Rust
Command::new("sh").arg("-c").arg(cmd).status()Command::new("convert").args([name, "thumb.png"]).status() - MediaCWE-312
Swift
UserDefaults.standard.set(reply.token, forKey: "token")try keychain.save(reply.token, account: "token") - AltaCWE-338
Scala
val token = Random.alphanumeric.take(32).mkStringval token = UUID.randomUUID().toString - AltaCWE-352
Elixir (Phoenix)
plug :fetch_sessionplug :protect_from_forgery - CríticaCWE-841
Solidity
payable(msg.sender).call{value: amount}("");balances[msg.sender] -= amount;payable(msg.sender).transfer(amount); - CríticaCWE-120
C / C++
strcpy(name, argv[1]);snprintf(name, sizeof name, "%s", argv[1]); - MediaCWE-353
HTML
<script src="https://cdn.example/chart.js"></script><script src="/static/vendor/chart.js"></script>
Seguridad del código en tiempo real, donde vive tu código.
Errores y avisos se acumulan mientras el agente escribe. Detectados antes de la pull request.
Feedback en tiempo real
Tecnología de IA híbrida
Herramientas de colaboración
Amplia compatibilidad de lenguajes
Correcciones y remediación automatizadas
Políticas personalizables
Informes pensados para desarrolladores
De la alerta a la corrección
La línea queda marcada.
Juzgada en el bucle.
Corregida en la línea.