Explainable Vulnerability Detection in C/C++ Using Edge-Aware Graph Attention Networks
Radowanul Haque, Aftab Ali, Sally McClean, Naveed Khan

TL;DR
ExplainVulD is a graph-based framework that improves vulnerability detection in C/C++ code by combining edge-aware attention mechanisms with explainability, addressing class imbalance and outperforming existing tools.
Contribution
The paper introduces ExplainVulD, a novel graph neural network model with edge-aware attention and explainability features for vulnerability detection in C/C++ code.
Findings
Achieves 88.25% accuracy and 48.23% F1 score on ReVeal dataset.
Outperforms prior models and static analysis tools in detection metrics.
Provides explainable outputs highlighting influential code regions.
Abstract
Detecting security vulnerabilities in source code remains challenging, particularly due to class imbalance in real-world datasets where vulnerable functions are under-represented. Existing learning-based methods often optimise for recall, leading to high false positive rates and reduced usability in development workflows. Furthermore, many approaches lack explainability, limiting their integration into security workflows. This paper presents ExplainVulD, a graph-based framework for vulnerability detection in C/C++ code. The method constructs Code Property Graphs and represents nodes using dual-channel embeddings that capture both semantic and structural information. These are processed by an edge-aware attention mechanism that incorporates edge-type embeddings to distinguish among program relations. To address class imbalance, the model is trained using class-weighted cross-entropy…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsInformation and Cyber Security · Security and Verification in Computing · Software Engineering Research
