research

Research map organized around the questions I am asking, not the papers I have written.

Exposure window: the fix is public, the advisory is not Upstream project Discover & confirm in private Fix committed public, not labeled Patch released next version Advisory & CVE NVD, GitHub advisories Attacker Reads the commit infers the vulnerability Builds an exploit LLM-assisted, in days Downstream users Today wait for the advisory Exposed, with no signal running the vulnerable version conventional response Patch after CVE weeks to months later attack With proactive sensing (our work) Silent fix flagged by proactive sensing Patched, 1–2 weeks before the CVE protected while others are still exposed blocked fix is public advisory & CVE published time
  1. Fix committed in public, not labeled as a security fix. The exposure window opens.
  2. Attacker reads the commit, infers the vulnerability and builds an exploit, LLM-assisted, in days.
  3. Today, downstream users get no signal, stay exposed until the advisory, and patch weeks to months later.
  4. With proactive sensing (our work), the silent fix is flagged and users patch 1–2 weeks before the CVE, so the attack is blocked.
My research focus: close the pre-disclosure window and act before the attacker.

Under coordinated vulnerability disclosure, a vulnerability is usually silently fixed in the public repository before any advisory exists. Until the CVE appears, that commit is the only public trace of the hole, and attackers read commits too.

Case · July 2026 · silently fixed, publicly exploited

Researchers reached OpenAI's internal repositories in under 72 hours. The entry point was a heap overflow in libheif, an open-source image decoder behind OpenAI's community forum, chained with an SSO misconfiguration. Upstream had already fixed the bug, but the fix was never labeled a security fix and never received a CVE, so it slipped past Debian's security backports and the vulnerable version kept shipping downstream. LLMs helped turn the bug into a working exploit; the whole campaign cost under $3,000 in tokens. Read the write-up ↗

This is the window our work targets: the fix is public, the vulnerability is not. Starting from our ASE'21 VulFixMiner paper, we pioneered proactive vulnerability sensing, treating silent fix commits as the first public signal of a hidden vulnerability and flagging 65% of them 1–2 weeks ahead of CVE disclosure. In 2025, LLM4VFD (FSE'25) brought LLMs together with code-change intention, development artifacts and historical vulnerabilities, raising F1 by 68–145% over the best prior detector. We now also work out which downstream versions a fix still leaves exposed.

Proactive Vulnerability Sensing

Q1. How can we detect a vulnerability before it is publicly disclosed?

Q2. How do we manage that vulnerability with one hand tied behind our back — no public CVEs or advisories to draw on?

Show/Hide Work on Proactive Vulnerability Sensing
Empirical Understanding
Silent-Fix Detection
Assessment
Fix & Validation

A coding agent starts every task from scratch, yet past development and past runs already hold much of what it needs. We work on process intelligence for coding agents: mining that past into constraints and guidance, delivering them to the agent before and during a run, and letting every run's trajectory refine them for the next. Across runs, experience is mined, evaluated and evolved; within a run, guidance steps in when the agent drifts.

Process Intelligence for Coding Agents

Q1. What can a coding agent learn from the past, and how do we turn it into constraints and guidance?

Q2. How do we observe, evaluate and guide an agent as it works, and feed what we see back?

Show/Hide Work on Process Intelligence
Coding agents

↓ trajectories · ↑ in-run guidance (in progress) · ↓ pull knowledge

trajectories
proactive intervention
In-run guidancein progress
pull knowledge
Analysis & evaluation
  • online & offline trajectory analysis
  • step-level evaluation of each run
  • [Failure and cause localization] in progress
  • [eval-kit-swe-pro] SWE-bench Pro evaluation plugin
mine
Evolution
evaluate
Implicit knowledge e.g., constraints & guidance
  • experience from project history and agent runs
  • delivered on demand, or during a run
  • [Lingxi] procedural knowledge from issue–patch history
  • [STAIR] repair recipes from agent trajectories
  • [TestGRAD] failure patterns from test outcomes
  • [Workflow mining] workflow structure from agent trajectories · in progress
From issue–patch history

Lingxi

ISSTA 2026 · Distinguished Paper

Recovers the procedural knowledge behind a repository's historical issues, and uses it to guide analysis, planning and fixing on new issues.

74.6%
SWE-bench Verified, Pass@1 · Claude 4 Sonnet
From agent trajectories

STAIR

Under review

Turns past repair trajectories into repair recipes at several granularities, and adapts the ones that fit into a plan for each stage of a new repair.

81.2%
SWE-bench Verified, Pass@1 · MiniMax M2.5 · as of Mar 2026
From test outcomes

TestGRAD

Under review

Mines recurring failure patterns from test attempts to evolve the test suite until it tells candidate patches apart: test-time scaling for agent ensembles.

84.2%
SWE-bench Verified, Pass@1 · 4-agent ensemble · as of May 2026