🤖 AI Summary
Static analysis tools for security vulnerability detection are often limited by high false-positive rates and insufficient coverage of certain vulnerability types, such as race conditions. This work proposes a hybrid approach that integrates self-admitted technical debt (SATD) with static analysis, systematically demonstrating for the first time that SATD can effectively complement static tools in identifying vulnerability categories they commonly miss. Leveraging three mainstream static analyzers, a real-world vulnerability dataset annotated with SATD, and a survey of 72 security practitioners, the study identifies 114 out of 135 security-related SATD instances, spanning 24 Common Weakness Enumerations (CWEs). Manual mapping further uncovers 33 CWEs, including six critical vulnerability types consistently overlooked by static analysis tools, offering novel insights and practical guidance for understanding and remediating software vulnerabilities.
📝 Abstract
Static Analysis Tools (SATs) are central to security engineering activities, as they enable early identification of code weaknesses without requiring execution. However, their effectiveness is often limited by high false-positive rates and incomplete coverage of vulnerability classes. At the same time, developers frequently document security-related shortcuts and compromises as Self-Admitted Technical Debt (SATD) in software artifacts, such as code comments. While prior work has recognized SATD as a rich source of security information, it remains unclear whether -and in what ways- it is utilized during SAT-aided security analysis. OBJECTIVE: This work investigates the extent to which security-related SATD complements the output produced by SATs and helps bridge some of their well-known limitations. METHOD: We followed a mixed-methods approach consisting of (i) the analysis of a SATD-annotated vulnerability dataset using three state-of-the-art SATs and (ii) an online survey with 72 security practitioners. RESULTS: The combined use of all SATs flagged 114 of the 135 security-related SATD instances, spanning 24 distinct Common Weakness Enumeration (CWE) identifiers. A manual mapping of the SATD comments revealed 33 unique CWE types, 6 of which correspond to categories that SATs commonly overlook or struggle to detect (e.g., race conditions). Survey responses further suggest that developers frequently pair SAT outputs with SATD insights to better understand the impact and root causes of security weaknesses and to identify suitable fixes. IMPLICATIONS: Our findings show that such SATD-encoded information can be a meaningful complement to SAT-driven security analysis, while helping to overcome some of SATs'practical shortcomings.