Static Application Security Testing (SAST) — Heeler

AI writes the code. Heeler finds what's actually exploitable.

AI coding agents ship vulnerable code faster than any reviewer can catch it. Heeler analyzes that code as a graph — tracing tainted data across functions and files, from source to sink — to surface the flaws that are genuinely exploitable, supply the exact change to fix them, and map every API you expose. Real findings, not a wall of false positives.

AI writes the vulnerability. Your scanner cries wolf.

Legacy SAST pattern-matches one line at a time — so it floods you with false positives, misses anything that spans functions, and hands you a finding with no fix. When agents write most of the code, that noise buries the real risk.

False-positive firehose

Judging a line in isolation flags an injection that a sanitizer three functions away already made safe. Teams stop trusting the tool.

Blind to cross-function flows

Real vulnerabilities span functions and files. A single-file, pattern-matching scanner never sees the path.

Flags, doesn't fix

A finding without the fix is just another ticket. Someone still has to work out the safe change.

A Symbol Property Graph, not pattern matching.

Heeler builds your code into a graph — symbols, calls, and data flow — and traces tainted input across functions and files, from source to sink. That's what separates a real vulnerability from a line that only looks dangerous — and what makes the findings trustworthy, the fixes exact, and the guardrails quiet.

Multi-file, multi-function analysis

Heeler follows tainted data across function and file boundaries — the whole call path, not one line — catching flaws a single-file scanner never sees.

Auth guards & sanitizers, understood

Heeler recognizes authentication guards and framework-specific sanitization on the path — so a flow already made safe upstream never fires as a false positive.

Confidence, not guesswork

Every finding is scored across multiple signals; vendored and test code are down-weighted, so what surfaces is worth your time.

Straight to the fix

Heeler resolves the most direct exploit path and points at the one change that closes it — not a sprawl of duplicate alerts.

Every finding comes with the change to make.

Heeler doesn't stop at “you have SQL injection here.” It supplies the exact fix — parameterize this query, escape this output, allowlist this input — as a concrete before-and-after, sized to the smallest safe change.

Before and after

The vulnerable code and the corrected code, side by side — not a link to a generic advisory.

The right strategy

Parameterize, escape, or allowlist — Heeler picks the correct remediation for the sink and the language.

Proportional

Fixes are scoped to the smallest change that closes the flow — no rewrites you didn't ask for.

It maps every API you expose — and who can reach it.

Heeler reads your code, not your docs, to enumerate every endpoint and its security posture — tracing the call chain to see where authentication actually happens versus where the operation runs.

Endpoint enumeration

Every route and input vector, discovered from code — server handlers and client-side entry points alike.

Auth, traced across files

Heeler follows the handler chain to tell an authenticated endpoint from one that only looks protected.

Exposed management endpoints

Framework admin surfaces — an unauthenticated Spring Actuator heap dump, an open env endpoint — flagged before they leak.

CSRF & CORS

Missing CSRF protection and permissive, wildcard CORS policies are surfaced as first-class findings.

The exploitable ones, first.

Heeler pairs each SAST finding with the running world: an injection in an internet-facing, unauthenticated service is Urgent; the same bug behind auth on an internal service can wait. Every SCA and SAST finding lands on one of three levels.

Urgent

Reachable and internet-exposed on a high-tier service, or actively exploited. Fix now.

Plan

Real risk, but not immediate — partial exposure or a lower-tier service. Schedule it.

Defer

Not currently exploitable — behind authentication, internal-only, or unreachable. Track it.

Fast enough to run on every pull request.

Heeler's SAST runs on the pull request, not just after merge — and because the analysis is incremental, the guardrail check comes back in seconds, not the minutes a full re-scan would take. It fits inside CI without slowing anyone down.

Sub-15-second PR scans

Incremental analysis re-checks only what changed, so it fits inside CI without slowing developers down.

Block, warn, or observe

PR guardrails gate net-new findings through your SCM's native checks — block the merge, warn, or silently observe — without failing on inherited debt.

Broad language coverage

Full interprocedural analysis across the languages your teams actually ship — not just surface-level parsing.

Don't just find it — fix it.

Heeler now turns its own SAST findings into validated, merge-ready pull requests — deterministic code fixes anchored to the taint path and proven in your build. Detection is only half the job.

See what your agents are actually shipping.

A demo runs Heeler on your repos. In your first session you'll see the real, exploitable flaws in your AI-generated code — each with the fix — and a map of the APIs you're exposing.