A scanner would have logged "uses unserialize() — possible object injection" and moved on. ArgusRed stood the code up in a sandbox, sent a crafted payload, and watched the object's magic method fire. Here is the receipt.
# craft a serialized object the way a compromised session would carry it $ php -r 'class Evil { function __wakeup(){ echo "WAKEUP_EXECUTED\n"; } } unserialize("O:4:\"Evil\":0:{}");' → feeding payload through ContextListener::safelyUnserialize() path… → unserialize() instantiates Evil, no allowed_classes guard hit WAKEUP_EXECUTED # magic method fired — object injection confirmed ✓ CONFIRMED — arbitrary class instantiation + magic-method execution
A confirmed list is only worth something because of everything that didn't make it. We probed each candidate and report three honest states: confirmed, discarded, and — the state every other tool hides — couldn't reproduce.
Probed and could not be exploited. The noise a scanner would have dumped on your backlog. You never see these.
Looked critical on paper; the worst-case exploit didn't hold up in the sandbox, so we lowered the severity instead of inflating it.
A credible candidate (a dependency CVE) we couldn't stand up the conditions to prove. We show it as unconfirmed, not as a clean pass and not as a confirmed hole.
One page a non-engineer can hand to a customer, investor, or auditor — overall rating and the confirmed count.
Each exploit: the file and line, the prerequisite, the reproduction evidence, and severity — stated honestly.
Everything we rejected, downgraded, or couldn't reproduce, with the reason for each. Your real coverage map.
Phased by impact and effort, each confirmed hole with a pull request that patches it and passes your tests.
What's already done right — parameter binding, CSRF CSPRNG, Twig auto-escaping — so the report is fair, not alarmist.
Proof of how the work was done: read-only host checkout, sandboxed verification, zero files modified.
For a fintech or healthtech team, "where does my code go" is the buying question. The report answers it on its own last page — and runs in the EU.
Connect a repo and we'll do exactly this to your code. If we can't reproduce a single real exploit, you don't pay.