How to use Codex to generate vulnerability proofs
Codex traced Java call paths to vulnerable dependencies and generated executable proofs. Build feedback and human validation checked what the tests showed.
Original prompt
Shared by the source author. See source notes for context.
You’re in the project workspace. Find every call path whose final hop is the sink method {sink_method}.Reach people exploring AI agents
See placements →Evidence at a glance
Sourced account- Original account
- Read the source ↗
- Published
- Source link checked
- Reported result
- Eighty-four generated tests triggered vulnerability behavior on the curated dataset. Submitted proposed findings had not received maintainer feedback at publication.
- Human involvement
- The researchers curated vulnerable application-library pairs, manually checked paths and test behavior and supplied results for developer review.
A linked account supports attribution. It does not mean we independently reproduced its result.
Report an issue with this case
Open correction emailOpens your email app with the case link included. Nothing is sent automatically.
How the agent did it
- Codex traced public application entry points to vulnerable dependency APIs.
- It generated JUnit proofs from call paths and exemplar tests and revised them using execution feedback.
- The researchers checked paths and behavior before presenting evidence for developer review.
Researchers at Virginia Tech used Codex in PoVSmith to determine whether vulnerable Java dependencies could actually be exploited through application code. A library advisory alone did not show which public application method could reach the affected API or supply the required input.
Codex first traced call paths from public methods to a specified vulnerable sink. The pipeline then supplied the path, project context and an exemplar library test so the agent could generate an application-level JUnit proof. Build and execution feedback drove revisions instead of accepting a plausible test that did not compile.
The instructions kept real call-path methods unmocked and required test inputs to be constructed within the test. A separate assessment stage inspected the code and logs, with outputs passed to developer review. The researchers also manually checked the identified paths and generated behavior.
Across the reported curated dataset, eighty-four generated tests demonstrated vulnerability-triggering behavior. Other tests did not, so generation and compilation were not treated as synonymous with a successful proof. The authors submitted proposed findings but had not received maintainer feedback at publication. This supports a measured research workflow for executable dependency-risk evidence, not a claim that every listed dependency vulnerability is exploitable in every application.
Prompt
Original prompt
Source: arXiv research paper · Shravya Kanchi, Xiaoyan Zang, Ying Zhang, Danfeng Yao and Na Meng
Frequently asked questions
Why not rely only on a library advisory?
It does not show whether the application's public methods can reach the vulnerable behavior.
Could call-path methods be mocked?
No. The instructions preserved the real methods whose behavior the proof needed to exercise.
Were submitted findings accepted?
At publication, the paper says proposed PRs and CVE requests had not received feedback.
More details
About this account
Codex traced public application entry points to vulnerable dependency APIs. It generated JUnit proofs from call paths and exemplar tests and revised them using execution feedback.
Original paper HTML and PDF opened. Original prompt excerpt is from the paper's explicitly simplified call-path template. Results are on the curated dataset; six proposed PRs/CVE requests had not received feedback at publication. Original prompt excerpt.
Credit: Shravya Kanchi, Xiaoyan Zang, Ying Zhang, Danfeng Yao and Na Meng — arXiv research paper
Source published
Added to Agents In Use
Source checked
Tools and topics
Codex · PoVSmith · Java · JUnit · Build logs
Dependency reachability · Executable evidence
Editorial completeness: 100/100. Measures documented fields, not agent performance or verified outcomes.