Why an operation allowlist is not enough: the case of UPDATE without WHERE
Operation allowlists decide on the first token of the query. But an agent that generates UPDATE products SET price = 0 without WHERE, a DELETE … WHERE 1=1 or a DROP inside a DO block gets past that filter. This is how AST parsing catches what the allowlist lets through.
Post-mortem of a scenario: how a LangChain agent can delete every user in production
An illustrative scenario built on a documented pattern: a LangChain agent with write access to Postgres generates a DELETE FROM users without WHERE from an ambiguous request. The full failure path and which control would have stopped it.
AST parsing for SQL security: how pg_query works under the hood
pg_query is the binding for libpg_query, which packages the parser from the PostgreSQL source code. We show how Vericto uses it to build the complete syntax tree of every query and evaluate the rules on it.
How to use the Vericto audit trail as evidence in a SOC 2 audit
The audit trail, the signed PDF report and the control mapping: SOC 2 evidence ready to hand to the auditor.
MCP servers and SQL security: the ecosystem growing without a protection layer
MCP servers expose databases directly to AI agents, and several that advertise a read-only mode turned out not to be. What fails in that model and which control layer is missing.
Shift-left SQL security: validating migrations in CI/CD before deploy
How to add vericto check to GitHub Actions to catch destructive queries in migrations before they reach the database.
Benchmark: Vericto latency vs direct Postgres connection with 10M queries
Methodology, results and source code of a benchmark of the real overhead of Vericto's proxy against a direct connection: p50, p95, p99 and p99.9 under different workloads.