A Rust web app + Neo4j + a Gitea instance. Three CVEs in one chain. The interesting part isn't any single bug — it's how a typo in a derive(Debug) macro becomes a full database takeover without ever touching the Neo4j port directly.
What this covers:
• What a Cypher injection actually is (and why it's not "just SQL for graphs")
• Why Rust derive macros are a surprisingly fertile bug surface
• The 3-CVE chain on Sorcery (CVE-2026-31431 / 43284 / 43500)







