Research
LLM agents for software engineering and security, and how to evaluate them honestly. M.Sc. research at Simon Fraser University with Dr. Mohammad Tayebi, and an ongoing collaboration with the University of Edinburgh. Also on Google Scholar.
Publications
-
P2Patch: Exploit-Guided Vulnerability Repair
Abstract
Exploit-guided repair in which the repair objective adapts. An exploitation agent re-attacks every accepted patch, and each execution-confirmed bypass becomes a permanent requirement the final patch must block. The exploits used during construction are kept strictly separate from held-out evaluation suites. On a 101-CVE Java and C/C++ benchmark, held-out fix-closed coverage rose from 78.1% to 84.7%, and beyond-upstream coverage from 42.1% to 62.5%, against single-pass repair on the same agent and model.
-
ZeroFalse: Improving Precision in Static Analysis with LLMs
Abstract
A multi-stage LLM pipeline that takes raw static-analyzer alerts and triages them through contextual reasoning and structured evidence validation, reducing false positives without sacrificing recall. Evaluated 10 frontier LLMs across 6 model families on the OWASP Java Benchmark (1,974 cases, 10 CWE categories) and CWE-bench — 755 real CodeQL alerts across 56 project–CVE pairs from 37 open-source Java repositories. CWE-specialized prompting improved F1 by up to +0.26 on real-world code; best F1 is 0.912 on OWASP and 0.837 on CWE-bench.
-
ThreatEZ: Control-Aware Threat Modeling from Software Repositories
-
Convict: Finding Vulnerability-Inducing Commits by Execution, Not Attribution
Ongoing research
- Do Coding Agents Write Complete Patches? A benchmark that checks coding-agent patches against the fixes developers shipped later. 2026 · ongoing
- CVerify Agentic CVE reproduction, checked against both the vulnerable and the patched build. Ongoing
- Does a Working Exploit Help an Agent Patch? A controlled test of whether a working exploit helps an agent write a better patch. It did not. 2026