Paper deep dive
JavaVulBench: A Java Vulnerability Benchmark with Realistic Splits, a Unified Multi-Backend Harness, and a Leakage-Aware Evaluation Mode
Norbert Sandor Szolnoki, Gabor Antal
Intelligence
Status: succeeded | Model: Gemma-4-26B-A4B | Prompt: intel-v1 | Confidence: 94%
Last extracted: 7/7/2026, 4:47:29 AM
Summary
JavaVulBench is a comprehensive benchmark dataset and evaluation harness for Java vulnerability detection. It features a corpus of ~30,600 Java methods spanning 1,740 CVEs and 700+ projects, with method- and line-level labels. The benchmark introduces five realistic data split strategies (random, project-disjoint, temporal, deduplicated, and unseen CWE-family) to mitigate data leakage. It provides a unified multi-backend evaluation harness supporting HuggingFace encoders, Ollama local models, and OpenRouter API LLMs, enabling standardized comparison of twelve reference detectors. Additionally, it includes a pre-training contamination audit to separate memorized vulnerabilities from genuinely unseen ones, addressing critical gaps in existing Java-focused benchmarks like Vul4J and CVEfixes.
Entities (35)
Relation Signals (24)
JavaVulBench → archiveson → Zenodo
confidence 95% · Data, code, and fine-tuned checkpoints are archived on Zenodo
JavaVulBench → contains → ~30,600 Java methods
confidence 95% · The dataset contains ~30,600 Java methods spanning 1,740 CVEs and 700+ projects
JavaVulBench → covers → 225 CWE categories
confidence 95% · across 700+ projects and 225 CWE categories from 2015-2025.
JavaVulBench → covers → 700+ projects
confidence 95% · The dataset contains ~30,600 Java methods spanning 1,740 CVEs and 700+ projects
JavaVulBench → covers → 1,740 CVEs
confidence 95% · The dataset contains ~30,600 Java methods spanning 1,740 CVEs and 700+ projects
JavaVulBench → evaluates → CodeBERT
confidence 95% · twelve reference detectors CodeBERT, GraphCodeBERT, UniXcoder, DeepSeek-Coder-1.3B, and eight API/open-weight LLMs ... are evaluated
JavaVulBench → evaluates → GraphCodeBERT
confidence 95% · twelve reference detectors CodeBERT, GraphCodeBERT, UniXcoder, DeepSeek-Coder-1.3B, and eight API/open-weight LLMs ... are evaluated
JavaVulBench → evaluates → UniXcoder
confidence 95% · twelve reference detectors CodeBERT, GraphCodeBERT, UniXcoder, DeepSeek-Coder-1.3B, and eight API/open-weight LLMs ... are evaluated
Cypher Suggestions (0)
No Cypher suggestions yet.
Abstract
Abstract:We release \textsc{JavaVulBench}, a benchmark dataset and evaluation harness for Java vulnerability detection. The dataset contains $\sim$30{,}600 Java methods spanning 1{,}740 CVEs and 700+ projects, labelled at both method and line granularity, with per-CVE publication dates and five realistic split strategies: random, project-disjoint, temporal, deduplicated, and unseen CWE-family. The harness provides a single \texttt{LlmPrediction} schema across three backend families (encoder classifiers, local generative models served by Ollama, and API-served LLMs routed through OpenRouter) so that twelve reference detectors CodeBERT, GraphCodeBERT, UniXcoder, DeepSeek-Coder-1.3B, and eight API/open-weight LLMs (GPT-4o, GPT-4.1-mini, Claude Sonnet~4, DeepSeek-v3, DeepSeek-Coder-v2, Qwen-2.5-Coder-14B/7B, CodeLlama-13B) are evaluated under identical conditions from a single command. A pre-training contamination audit is shipped alongside every model so users can separate genuinely unseen test CVEs from potentially memorised ones. Data, code, and fine-tuned checkpoints are archived on Zenodo [31] and short demonstration video is available on YouTube (this https URL\_hqkuoM) this https URL.
Tags
Links
- Source: https://arxiv.org/abs/2607.02825v1
- Canonical: https://arxiv.org/abs/2607.02825v1
Trouble viewing inline? Open PDF directly →
Full Text
26,670 characters extracted from source content.
Expand or collapse full text
JavaVulBench: A Java Vulnerability Benchmark with Realistic Splits, a Unified Multi-Backend Harness, and a Leakage-Aware Evaluation Mode Norbert Sándor Szolnoki szolnoki@inf.u-szeged.hu 0009-0000-6351-9000 and Gábor Antal antal@inf.u-szeged.hu University Of SzegedSzegedHungary Abstract. We release JavaVulBench, a benchmark dataset and evaluation harness for Java vulnerability detection. The dataset contains ∼ 30,600 Java methods spanning 1,740 CVEs and 700+ projects, labelled at both method and line granularity, with per-CVE publication dates and five realistic split strategies: random, project-disjoint, temporal, deduplicated, and unseen CWE-family. The harness provides a single LlmPrediction schema across three backend families (encoder classifiers, local generative models served by Ollama, and API-served LLMs routed through OpenRouter) so that twelve reference detectors CodeBERT, GraphCodeBERT, UniXcoder, DeepSeek-Coder-1.3B, and eight API/open-weight LLMs (GPT-4o, GPT-4.1-mini, Claude Sonnet 4, DeepSeek-v3, DeepSeek-Coder-v2, Qwen-2.5-Coder-14B/7B, CodeLlama-13B) are evaluated under identical conditions from a single command. A pre-training contamination audit is shipped alongside every model so users can separate genuinely unseen test CVEs from potentially memorised ones. Data, code, and fine-tuned checkpoints are archived on Zenodo (Szolnoki and Antal, 2026) and short demonstration video is available on YouTube (https://w.youtube.com/watch?v=nMTX_hqkuoM)111https://w.youtube.com/watch?v=nMTX_hqkuoM. †conference: 41th IEEE/ACM International Conference on Automated Software Engineering; October 2026; Munich, Germany†copyright: none 1. Introduction Deep-learning-based vulnerability detection has been benchmarked predominantly on C/C++ corpora such as Big-Vul (Fan et al., 2020) and Devign (Zhou et al., 2019). Java is a widely-deployed enterprise language and the OWASP Top-10 categories (OWASP Foundation, 2021) (injection, deserialisation, SSRF, path traversal, authentication/authorisation) commonly appear in disclosed Java CVEs, yet Java-focused evaluation infrastructure is comparatively thin. When Java is evaluated at all it is typically through a random split of the multilingual CVEfixes corpus (Bhandari et al., 2021), with no project-disjoint or temporal partition. Chakraborty et al. (Chakraborty et al., 2022) showed on C/C++ that this single methodological choice can inflate reported F1 by 15-40 points, because near-duplicate methods drawn from the same project routinely leak between train and test. To the best of our knowledge, existing Java-focused benchmarks - Vul4J (Bui et al., 2022), VJBench (Wu et al., 2023), CWE-Bench-Java (released with the IRIS system) (Li et al., 2024), and the Java slice of CVEfixes (Bhandari et al., 2021) - do not simultaneously ship multiple realistic split strategies, explicit non-vulnerable samples, line-level labels, a unified multi-backend evaluation harness, and a per-model pre-training contamination audit. Table 5 summarises this comparison. JavaVulBench is built to fill that combination. Intended users. Vulnerability-detection researchers who need a Java benchmark with controlled leakage, and tool builders who want a drop-in harness that evaluates their detector against existing baselines under identical conditions. Contributions. We release JavaVulBench, consisting of: (i) a CVE-grounded corpus of ∼ 30,600 Java methods spanning 1,740 CVEs and 700+ projects, labelled at both method and line granularity, with per-sample publication dates and five realistic split strategies (random, project-disjoint, temporal, deduplicated at Jaccard 0.8, unseen CWE-family); (i) a unified evaluation harness with a single LlmPrediction schema spanning three backend families - HuggingFace encoder classifiers (CodeBERT (Feng et al., 2020), GraphCodeBERT (Guo et al., 2021), UniXcoder (Guo et al., 2022)), Ollama (Ollama, 2024)-served DeepSeek-Coder-1.3B (Guo et al., 2024), and eight OpenRouter (OpenRouter, 2024)-served API LLMs (GPT-4o (OpenAI, 2024), GPT-4.1-mini, Claude Sonnet 4, DeepSeek-v3 (DeepSeek-AI, 2024b), DeepSeek-Coder-v2 (DeepSeek-AI, 2024a), Qwen-2.5-Coder-14B/7B (Hui et al., 2024), CodeLlama-13B (Rozière et al., 2023)) - driven from a single command; (i) a pre-training contamination audit that partitions every test split per model into risky (CVEs before the model’s cutoff) and clean (after) subsets with leakage-aware metric reporting; and (iv) a Dockerised, one-command reproduction pipeline with fine-tuned checkpoints archived on Zenodo (Szolnoki and Antal, 2026). Our headline empirical finding (Section 4.1) is that switching from a random to a project-disjoint split on Java reproduces the 15-40 F1-point gap Chakraborty et al. (Chakraborty et al., 2022) observed on C/C++. The harness and contamination audit are the infrastructure that make this and similar studies reproducible. 2. Dataset Mining. CVE records are merged from three sources: the NIST National Vulnerability Database (National Institute of Standards and Technology, 2024), the GitHub Security Advisory database (GitHub, 2024), and CVEfixes (Bhandari et al., 2021). Each record resolves to one or more fix commits; pre- and post-fix Java source snapshots are pulled through the GitHub API and cached. A tree-sitter (Brunsfeld, 2018) grammar extracts method bodies with method-, class-, and file-level provenance preserved. When a commit’s source files are unavailable the harness falls back to diff-level parsing. A noise filter then removes test-only, formatting-only and refactoring-only commits, which we found routinely inflate earlier corpora. Labelling. Each vulnerable method is paired with its patched counterpart under a shared pair_id. Negatives are drawn from three strategy per vulnerable method: same file (3:1), same project (2:1), and a random project (1:1). Every sample carries the CVE’s publication date, the CWE tag, and the set of vulnerable line numbers from the fix commit. The final corpus contains 30,637 methods (5,281 vulnerable, 4,964 patched, 20,392 negatives) across 700+ projects and 225 CWE categories from 2015-2025. Splits. We ship five partition strategies as ready-to-use JSONL. Random is the optimistic reference; project guarantees no project overlap between train and test; time trains on CVEs published before 2023 and tests on those from 2023-07 onwards; deduplicated applies Jaccard-0.8 near-duplicate removal before the split; and CWE-family holds out entire CWE families (e.g. all CWE-79 XSS samples) so models are forced to generalise across vulnerability classes. This five-way release makes the split strategy itself a first-class, reportable property of any benchmark number. Datasheet. The corpus ships with a datasheet in the Gebru et al. (Gebru et al., 2021) template covering motivation, composition, collection, pre-processing, intended uses and maintenance, including known bias risks (English-only commit messages; Apache/GitHub-heavy ecosystem). 3. Evaluation Harness The evaluation harness exposes a unified LlmPrediction interface across all backends, enabling the same evaluation, plotting, and statistical-analysis pipeline to be reused unchanged. Integrating a new detector requires implementing a single predict interface returning the predicted label, confidence, optional CWE category, and optional vulnerable lines. Backends. The framework supports three backend families: (i) HuggingFace Transformers for encoder-style classifiers, including CodeBERT (Feng et al., 2020), GraphCodeBERT (Guo et al., 2021), UniXcoder (Guo et al., 2022), and compatible checkpoints such as PDBERT (Liu et al., 2024); (i) Ollama (Ollama, 2024) for local generative inference, including DeepSeek-Coder-1.3B (Guo et al., 2024) in zero-shot and LoRA-fine-tuned (Hu et al., 2022) configurations; and (i) OpenRouter (OpenRouter, 2024) for API-based LLM evaluation, covering GPT-4o (OpenAI, 2024), GPT-4.1-mini, Claude Sonnet 4, DeepSeek-v3 (DeepSeek-AI, 2024b), DeepSeek-Coder-v2 (DeepSeek-AI, 2024a), Qwen-2.5-Coder (Hui et al., 2024), and CodeLlama-13B (Rozière et al., 2023). Prompt strategies. Generative backends support zero-shot, few-shot, and retrieval-augmented generation (RAG) (Lewis et al., 2020) evaluation. The RAG pipeline combines sentence-transformer embeddings (Reimers and Gurevych, 2019) indexed with FAISS (Johnson et al., 2021), BM25 lexical retrieval (Robertson and Zaragoza, 2009), and Reciprocal Rank Fusion (Cormack et al., 2009). The knowledge base is intentionally small and Java-specific, containing 18 MITRE CWE descriptions mapped to common Java APIs/framework idioms (e.g., ObjectInputStream.readObject, DocumentBuilderFactory, JDBC query concatenation) and 10 OWASP/CERT-derived API-misuse patterns paired with vulnerable/secure Java examples. The collection focuses on Java-relevant OWASP Top 10 categories and excludes non-Java or overly abstract CWEs. Cost control. API-based evaluations use a fixed stratified 200-sample subset per split (seed 42), allowing direct comparison across models and prompt strategies while keeping large-scale API evaluation financially tractable. All API calls are routed through OpenRouter behind a single interface. Metrics. The harness reports detection metrics (precision, recall, F1, MCC (Matthews, 1975), PR-AUC, false-positive rate), calibration metrics (ECE (guo2017), Brier score (Brier, 1950)), localization metrics (top-k accuracy, IoU, MAP@k), and CWE metrics. MCC summarises all confusion-matrix cells under imbalance; PR-AUC measures threshold-independent ranking; ECE and Brier assess confidence calibration, where lower is better. 4. Validation Studies To demonstrate that the artefact functions as claimed we run three validation studies, each reproducible with a single script invocation and writing its tables as CSV files directly into results/. The central claim we validate is that on Java, split strategy is a first-class property of any reported number; the harness (Section 4.2) and the leakage-aware mode (Section 4.3) are the enabling infrastructure around that claim. 4.1. VS1: Split strategy is a first-class property Table 1 reports detection F1 of the four fine-tuned reference models on the full test set of each shipped split. The gap between random and project-disjoint reproduces on Java the effect Chakraborty et al. (Chakraborty et al., 2022) reported on C/C++: UniXcoder drops from F1=0.446=0.446 on the random split to 0.2980.298 on project-disjoint (−0.148-0.148), and GraphCodeBERT drops from 0.3430.343 to 0.2560.256 (−0.087-0.087). CodeBERT’s F1 collapses to 0 on the project-disjoint and temporal test sets: the model predicts the majority (non-vulnerable) class at the default 0.5 threshold because the held-out API surface barely overlaps with its pre-training corpus, so recall on the positive class is zero. PR-AUC and ECE remain informative here because they expose ranking and calibration behaviour despite the failed default threshold. The upshot for downstream users is unambiguous: project-disjoint should be treated as the default headline split, with random shipped only as an optimistic reference. Table 1. Detection F1 on the full test set of each shipped split for the four fine-tuned reference models are distributed with the artifact. The drop from random to project is the split-impact headline; it reproduces for Java the effect Chakraborty et al. (Chakraborty et al., 2022) reported on C/C++. Model Random Project Time CWE-family CodeBERT 0.422 0.000 0.000 0.118 GraphCodeBERT 0.343 0.256 0.097 0.159 UniXcoder 0.446 0.298 0.171 0.345 DeepSeek-Coder-1.3B 0.341 0.062 0.335 – 4.2. VS2: Reference baselines across backend families The unified harness lets the same split and the same sample_id set drive every backend family. Fine-tuned encoders and DeepSeek-Coder-1.3B are evaluated on the full project-disjoint test set (Table 2, N=4,167N=4,167); these are the anchor points new detectors should compare to. Table 3 reports the cost-matched 200-sample probe for the eight API-served LLMs. The two tables are not a single leaderboard: cross-family comparisons should only use the shared probe sample_id set. Claude Sonnet 4 and GPT-4o both land around F1=0.42 on the probe, surpassing every encoder baseline. GPT-4o also shows the best calibration of the API group (ECE=0.147), meaning that its confidence scores are better aligned with observed correctness. DeepSeek-Coder-v2’s negative MCC indicates that, after accounting for both classes and all confusion-matrix cells, its zero-shot decisions are below chance on Java vulnerability detection. CodeLlama-13B has the highest PR-AUC, suggesting that its confidence ranking is useful even though its default-threshold F1 and calibration are weaker. Table 2. Reference detection and calibration baselines on the project-disjoint split, full test set (N=4167N=4167). Higher is better except for ECE and Brier. Model F1 MCC PR-AUC ECE ↓ Brier ↓ CodeBERT 0.000 0.000 0.347 0.086 0.146 GraphCodeBERT 0.256 0.200 0.366 0.057 0.141 UniXcoder 0.298 0.215 0.346 0.087 0.149 DeepSeek-Coder-1.3B 0.062 0.066 0.310 0.088 0.160 Table 3. Cost-matched detection probe on the project-disjoint split. All eight API-served LLMs were capped at the same deterministic 200-sample stratified subset (seed 42); running them on the full test set would have been prohibitively expensive. Numbers are therefore directly comparable across API backends. Model F1 MCC PR-AUC ECE ↓ Brier ↓ GPT-4o 0.419 0.271 0.438 0.147 0.204 GPT-4.1-mini 0.400 0.273 0.465 0.163 0.178 Claude Sonnet 4 0.416 0.280 0.349 0.281 0.293 DeepSeek-v3 0.300 0.187 0.371 0.145 0.177 DeepSeek-Coder-v2 0.146 -0.108 0.215 0.312 0.338 Qwen-2.5-Coder-14B 0.320 0.164 0.294 0.223 0.216 Qwen-2.5-Coder-7B 0.247 0.078 0.195 0.262 0.255 CodeLlama-13B 0.372 0.197 0.540 0.446 0.444 4.3. VS3: Leakage-aware evaluation mode The shipped contamination audit partitions each split’s test set per model into a risky subset (CVEs published before the model’s pre-training cutoff, potentially memorised) and a clean subset (published after). Table 4 reports the audit on the time split and the leakage-aware F1 on the 200-sample probe: encoders with 2019–2022 cutoffs see the entire test set as clean, while the most capable API LLMs with 2024–2025 cutoffs see up to 59% of the set flagged as risky, and all four strongest API models gain F1 on the clean subset — suggesting the risky subset contains harder CVE variants rather than easy memorisable ones. Table 4. Per-model contamination audit on the time test split and leakage-aware F1 on the API-LLM probe. CVEs published ≤ model cutoff are risky (potentially memorised); the remainder is clean. F1all_all / F1clean_clean are reported on the 200-sample probe; encoder audit counts are on the full N=12,139N=12,139 split. Model Cutoff Risky Clean F1all_all F1clean_clean CodeBERT/GraphCodeBERT/ UniXcoder ’19–’22 0 12,139 — — DeepSeek-Coder-1.3B ’23-02 0 12,139 — — GPT-4o ’23-10 1,516 10,623 0.488 0.528 GPT-4.1-mini ’24-06 3,880 8,259 0.296 0.323 DeepSeek-v3 ’24-07 5,299 6,840 0.302 0.286 Claude Sonnet 4 ’25-03 7,194 4,945 0.444 0.480 DeepSeek-Coder-v2 ’24-06 — — 0.152 0.213 Qwen-2.5-Coder-14B ’24-09 — — 0.207 0.270 Qwen-2.5-Coder-7B ’24-09 — — 0.138 0.186 CodeLlama-13B ’23-07 — — 0.331 0.331 Users reporting numbers on JavaVulBench are expected to quote both the full-split F1 and the clean-subset F1, so that memorisation cannot be confused with generalisation. 5. Availability and Reproduction The artefact is archived on Zenodo (Szolnoki and Antal, 2026). Data are released under C-BY-4.0 and code under the MIT licence. The archive is self-contained: it ships data/raw/, processed splits, prediction files, result tables, and fine-tuned checkpoints, so reviewers can reproduce the reported results without GitHub or NVD API access. Reproduction is driven by scripts/reproduce.py. The pipeline has five resumable stages: data extracts methods, applies noise filters, and generates the shipped splits; models downloads external weights when needed; audit runs the pre-training contamination audit; eval fine-tunes the encoder baselines and runs the API-LLM probe; and paper aggregates prediction files into the CSV tables used in this paper. Stages can be selected with --only or skipped with --skip; partial runs reuse on-disk prediction files rather than recomputing them. On our reference machine, Windows 11, Python 3.12, CUDA 12.8, an RTX 4060/5080-class GPU with 8-12 GB VRAM, and 16 GB RAM, the cached pipeline completes in about 30-45 minutes when the shipped mining artifacts are reused. Building the benchmark with --stats takes about 5 seconds from cached artifacts, while the pre-training contamination audit takes 30–90 seconds. Fine-tuning unixcoder-base for two epochs on 3k samples takes 3–5 minutes on GPU; the fallback GPT-4.1-mini 20-sample API probe takes 20–40 seconds; and the same fine-tuning run on CPU takes 45–75 minutes. A full rebuild takes about 8-12 hours. The dominant cost is the mining stage, CVE → commit → source, which takes roughly 6-10 hours. Benchmark construction then takes 10-20 minutes on CPU, while the contamination audit, fine-tuning step, API fallback, and csv generation have the same expected runtimes as in the cached setting. Docker pins Python 3.12 and CUDA 12.4. API-based runs require OPENROUTER_KEY; mining from scratch requires GITHUB_TOKEN. The Zenodo snapshot can regenerate the reported tables without either key. 6. Positioning and Limitations Table 5. Java vulnerability benchmarks. M = method/function-level labels shipped directly; N = explicit non-vulnerable samples; L = line-level vulnerable-line labels; S = ≥2≥ 2 realistic split strategies shipped; H = unified multi-backend evaluation harness; A = per-model pre-training contamination audit. ✓ = yes, ✗ = no, ∼ = partial / derivable from shipped diffs but not shipped directly. Benchmark Java-only M N L S H A Vul4J (Bui et al., 2022) ✓ ∼ ✗ ∼ ✗ ✗ ✗ VJBench (Wu et al., 2023) ✓ ∼ ✗ ∼ ✗ ✗ ✗ CWE-Bench-Java (Li et al., 2024) ✓ ✓ ✗ ✗ ✗ ✗ ✗ CVEfixes (Bhandari et al., 2021) ✗ ∼ ✗ ∼ ✗ ✗ ✗ JavaVulBench (this work) ✓ ✓ ✓ ✓ ✓ ✓ ✓ Positioning. Table 5 compares JavaVulBench with the closest Java vulnerability benchmarks. Vul4J (Bui et al., 2022) and VJBench (Wu et al., 2023) are repair-oriented corpora with reproducible Java CVEs and PoC tests, rather than method-level classification datasets with explicit negatives. CWE-Bench-Java (Li et al., 2024) provides function-level Java CVEs, but lacks paired non-vulnerable samples, line labels, and shipped realistic splits; CVEfixes (Bhandari et al., 2021) is multilingual and commit/file-level. JavaVulBench adds the combination of method+line labels, stratified negatives, five realistic splits, a unified multi-backend harness, and per-model contamination auditing for enterprise Java vulnerabilities such as deserialization, SSRF, path traversal, injection, and authentication/authorisation flaws. Limitations. Line labels approximate developer-edited fix lines and may miss semantically vulnerable statements. The deduplicated split is currently equivalent to random at Jaccard 0.8; stronger cross-project duplicate detection is left to the datasheet. API-LLM results use a deterministic 200-sample per-split probe for cost reasons, while the fine-tuned baselines in Table 2 remain evaluated on the full test set. References G. Bhandari, A. Naseer, and L. Moonen (2021) CVEfixes: automated collection of vulnerabilities and their fixes from open-source software. In 17th International Conference on Predictive Models and Data Analytics in Software Engineering (PROMISE), p. 30–39. External Links: Document Cited by: §1, §1, §2, Table 5, §6. G. W. Brier (1950) Verification of forecasts expressed in terms of probability. Monthly Weather Review 78 (1), p. 1–3. Cited by: §3. M. Brunsfeld (2018) Tree-sitter: an incremental parsing system for programming tools. In Strange Loop Conference, Note: https://tree-sitter.github.io/tree-sitter/ Cited by: §2. Q. Bui, R. Scandariato, and N. E. D. Ferreyra (2022) Vul4J: a dataset of reproducible Java vulnerabilities geared towards the study of program repair techniques. In 19th International Conference on Mining Software Repositories (MSR), p. 464–468. External Links: Document Cited by: §1, Table 5, §6. S. Chakraborty, R. Krishna, Y. Ding, and B. Ray (2022) Deep learning based vulnerability detection: are we there yet?. IEEE Transactions on Software Engineering 48 (9), p. 3280–3296. External Links: Document Cited by: §1, §1, §4.1, Table 1. G. V. Cormack, C. L. A. Clarke, and S. Büttcher (2009) Reciprocal rank fusion outperforms Condorcet and individual rank learning methods. In 32nd International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR), p. 758–759. External Links: Document Cited by: §3. DeepSeek-AI (2024a) DeepSeek-Coder-V2: breaking the barrier of closed-source models in code intelligence. arXiv preprint arXiv:2406.11931. Cited by: §1, §3. DeepSeek-AI (2024b) DeepSeek-V3 technical report. arXiv preprint arXiv:2412.19437. Cited by: §1, §3. J. Fan, Y. Li, S. Wang, and T. N. Nguyen (2020) A C/C++ code vulnerability dataset with code changes and CVE summaries. In 17th International Conference on Mining Software Repositories (MSR), p. 508–512. External Links: Document Cited by: §1. Z. Feng, D. Guo, D. Tang, N. Duan, X. Feng, M. Gong, L. Shou, B. Qin, T. Liu, D. Jiang, and M. Zhou (2020) CodeBERT: a pre-trained model for programming and natural languages. In Findings of the Association for Computational Linguistics: EMNLP 2020, p. 1536–1547. External Links: Document Cited by: §1, §3. T. Gebru, J. Morgenstern, B. Vecchione, J. W. Vaughan, H. Wallach, H. Daumé I, and K. Crawford (2021) Datasheets for datasets. Communications of the ACM 64 (12), p. 86–92. External Links: Document Cited by: §2. GitHub (2024) GitHub Security Advisories database. Note: https://github.com/advisories Cited by: §2. D. Guo, S. Lu, N. Duan, Y. Wang, M. Zhou, and J. Yin (2022) UniXcoder: unified cross-modal pre-training for code representation. In 60th Annual Meeting of the Association for Computational Linguistics (ACL), p. 7212–7225. External Links: Document Cited by: §1, §3. D. Guo, S. Ren, S. Lu, Z. Feng, D. Tang, S. Liu, L. Zhou, N. Duan, A. Svyatkovskiy, S. Fu, M. Tufano, S. K. Deng, C. Clement, D. Drain, N. Sundaresan, J. Yin, D. Jiang, and M. Zhou (2021) GraphCodeBERT: pre-training code representations with data flow. In International Conference on Learning Representations (ICLR), Cited by: §1, §3. D. Guo, Q. Zhu, D. Yang, Z. Xie, K. Dong, W. Zhang, G. Chen, X. Bi, Y. Wu, Y. K. Li, F. Luo, Y. Xiong, and W. Liang (2024) DeepSeek-Coder: when the large language model meets programming – the rise of code intelligence. arXiv preprint arXiv:2401.14196. Cited by: §1, §3. E. J. Hu, Y. Shen, P. Wallis, Z. Allen-Zhu, Y. Li, S. Wang, L. Wang, and W. Chen (2022) LoRA: low-rank adaptation of large language models. In International Conference on Learning Representations (ICLR), Cited by: §3. B. Hui, J. Yang, Z. Cui, J. Yang, D. Liu, L. Zhang, T. Liu, J. Zhang, B. Yu, K. Lu, K. Dang, Y. Fan, Y. Zhang, A. Yang, R. Men, F. Huang, B. Zheng, Y. Miao, S. Quan, Y. Feng, X. Ren, X. Ren, J. Zhou, and J. Lin (2024) Qwen2.5-Coder technical report. arXiv preprint arXiv:2409.12186. Cited by: §1, §3. J. Johnson, M. Douze, and H. Jégou (2021) Billion-scale similarity search with GPUs. In IEEE Transactions on Big Data, Vol. 7, p. 535–547. External Links: Document Cited by: §3. P. Lewis, E. Perez, A. Piktus, F. Petroni, V. Karpukhin, N. Goyal, H. Küttler, M. Lewis, W. Yih, T. Rocktäschel, S. Riedel, and D. Kiela (2020) Retrieval-augmented generation for knowledge-intensive NLP tasks. In Advances in Neural Information Processing Systems (NeurIPS), Cited by: §3. Z. Li, S. Dutta, and M. Naik (2024) IRIS: LLM-assisted static analysis for detecting security vulnerabilities. arXiv preprint arXiv:2405.17238. Cited by: §1, Table 5, §6. Z. Liu, Z. Tang, J. Zhang, X. Xia, and X. Yang (2024) Pre-training by predicting program dependencies for vulnerability analysis tasks. In 46th IEEE/ACM International Conference on Software Engineering (ICSE), p. 1–13. External Links: Document Cited by: §3. B. W. Matthews (1975) Comparison of the predicted and observed secondary structure of T4 phage lysozyme. Biochimica et Biophysica Acta (BBA) - Protein Structure 405 (2), p. 442–451. External Links: Document Cited by: §3. National Institute of Standards and Technology (2024) National vulnerability database. Note: https://nvd.nist.gov/ Cited by: §2. Ollama (2024) Ollama: run large language models locally. Note: https://ollama.com/ Cited by: §1, §3. OpenAI (2024) GPT-4o system card. arXiv preprint arXiv:2410.21276. Cited by: §1, §3. OpenRouter (2024) OpenRouter: a unified interface for LLMs. Note: https://openrouter.ai/ Cited by: §1, §3. OWASP Foundation (2021) OWASP Top 10:2021 — the ten most critical web application security risks. Note: https://owasp.org/Top10/ Cited by: §1. N. Reimers and I. Gurevych (2019) Sentence-BERT: sentence embeddings using Siamese BERT-networks. In 2019 Conference on Empirical Methods in Natural Language Processing (EMNLP), p. 3982–3992. External Links: Document Cited by: §3. S. Robertson and H. Zaragoza (2009) The probabilistic relevance framework: BM25 and beyond. Foundations and Trends in Information Retrieval 3 (4), p. 333–389. External Links: Document Cited by: §3. B. Rozière, J. Gehring, F. Gloeckle, S. Sootla, I. Gat, X. E. Tan, Y. Adi, J. Liu, T. Remez, J. Rapin, A. Kozhevnikov, I. Evtimov, J. Bitton, M. Bhatt, C. C. Ferrer, A. Grattafiori, W. Xiong, A. Défossez, J. Copet, F. Azhar, H. Touvron, L. Martin, N. Usunier, T. Scialom, and G. Synnaeve (2023) Code Llama: open foundation models for code. arXiv preprint arXiv:2308.12950. Cited by: §1, §3. N. S. Szolnoki and G. Antal (2026) Cited by: §1, §5. Y. Wu, N. Jiang, H. V. Pham, T. Lutellier, J. Davis, L. Tan, P. Babkin, and S. Shah (2023) How effective are neural networks for fixing security vulnerabilities. In 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA), p. 1282–1294. External Links: Document Cited by: §1, Table 5, §6. Y. Zhou, S. Liu, J. Siow, X. Du, and Y. Liu (2019) Devign: effective vulnerability identification by learning comprehensive program semantics via graph neural networks. In Advances in Neural Information Processing Systems (NeurIPS), p. 10197–10207. Cited by: §1.