Improving the Context Length and Efficiency of Code Retrieval for Tracing Security Vulnerability Fixes
Journal:
arXiv
Published Date:
Mar 29, 2025
Abstract
In recent years, the rapid increase of security vulnerabilities has caused
major challenges in managing them. One critical task in vulnerability
management is tracing the patches that fix a vulnerability. By accurately
tracing the patching commits, security stakeholders can precisely identify
affected software components, determine vulnerable and fixed versions, assess
the severity etc., which facilitates rapid deployment of mitigations. However,
previous work has shown that the patch information is often missing in
vulnerability databases, including both the National Vulnerability Databases
(NVD) and the GitHub Advisory Database, which increases the risk of delayed
mitigation, incorrect vulnerability assessment, and potential exploits.
Although existing work has proposed several approaches for patch tracing,
they suffer from two major challenges: (1) the lack of scalability to the
full-repository level, and (2) the lack of study on how to model the semantic
similarity between the CVE and the full diff code. Upon identifying this gap,
we propose SITPatchTracer, a scalable full-repo full-context retrieval system
for security vulnerability patch tracing. SITPatchTracer leverages
ElasticSearch, learning-to-rank, and a hierarchical embedding approach based on
GritLM, a top-ranked LLM for text embedding with unlimited context length and
fast inference speed. The evaluation of SITPatchTracer shows that it achieves a
high recall on both evaluated datasets. SITPatchTracer's recall not only
outperforms several existing works (PatchFinder, PatchScout, VFCFinder), but
also Voyage, the SOTA commercial code embedding API by 13\% and 28\%.