Skip to content
DemoReal data from our own test repository, cernis-intelligence/agentcernis-webhook-test. A PR review that found a SQL injection replays on a loop, sped up. Nothing here is saved.Back to the siteGet started
Agent Cernis

PR review #1

10-line Express service (server.js) with two public GET routes and no authentication, session, or middleware of any kind (no app.use at all). GET /users interpolates the attacker-controlled req.query.email directly into a template-literal SQL string run by a shared pg Pool (server.js:7) — trivially exploitable SQLi, amplified because the bare-string pool.query call uses Postgres's simple query protocol (stacked statements allowed) and sits on a GET route fireable cross-site with zero credentials. The same route anonymously returns user id/email PII. No error handler, no rate limiting, no statement/pool timeouts; app.listen(3000) binds all interfaces. Core fixes: parameterized query ($1 with values array), authn/authz on /users, an error handler, and pool/statement timeouts.

Reviewing PR #1, started just now

Running for
0:00
Lines read
13
Findings
0
Spent so far
$0.02
LiveFull log
  1. Setup (in progress)
  2. Index (pending)
  3. Sweep (pending)
  4. Hunt (pending)
  5. Verify (pending)
  6. Report (pending)
PR review #1 · cernis-intelligence/agentcernis-webhook-test (demo) · Agent Cernis