Large Language Models for In-File Vulnerability Localization Can Be "Lost in the End"
Francesco Sovrano, Adam Bauer, Alberto Bacchelli
TL;DR
This study evaluates state-of-the-art chat-based LLMs for in-file vulnerability localization across CVE-derived datasets focusing on CWE-22, CWE-89, and CWE-79. It reveals a robust lost-in-the-end effect where vulnerabilities near the end of long files are systematically harder to detect, confirmed through real-world data and the code-in-the-haystack experiment. The authors show that smaller input chunks can significantly boost recall (averaging over +37% improvements) but at the cost of more false positives, and that optimal chunk sizes vary by vulnerability type and model. Practical implications include guidance on chunking strategies and the need for larger or better-tuned context windows to improve reliability in real-world software security workflows.
Abstract
Recent advancements in artificial intelligence have enabled processing of larger inputs, leading everyday software developers to increasingly rely on chat-based large language models (LLMs) like GPT-3.5 and GPT-4 to detect vulnerabilities across entire files, not just within functions. This new development practice requires researchers to urgently investigate whether commonly used LLMs can effectively analyze large file-sized inputs, in order to provide timely insights for software developers and engineers about the pros and cons of this emerging technological trend. Hence, the goal of this paper is to evaluate the effectiveness of several state-of-the-art chat-based LLMs, including the GPT models, in detecting in-file vulnerabilities. We conducted a costly investigation into how the performance of LLMs varies based on vulnerability type, input size, and vulnerability location within the file. To give enough statistical power to our study, we could only focus on the three most common (as well as dangerous) vulnerabilities: XSS, SQL injection, and path traversal. Our findings indicate that the effectiveness of LLMs in detecting these vulnerabilities is strongly influenced by both the location of the vulnerability and the overall size of the input. Specifically, regardless of the vulnerability type, LLMs tend to significantly (p < .05) underperform when detecting vulnerabilities located toward the end of larger files, a pattern we call the 'lost-in-the-end' effect. Finally, to further support software developers and practitioners, we also explored the optimal input size for these LLMs and presented a simple strategy for identifying it, which can be applied to other models and vulnerability types. Eventually, we show how adjusting the input size can lead to significant improvements in LLM-based vulnerability detection, with an average recall increase of over 37% across all models.
