一句话:提出 ConVReach,以约束引导的静态与动态结合方法判定 C/C++ 依赖漏洞可达性,显著减少误报漏报。
第三方库常含已知漏洞,判断依赖漏洞可达性十分关键。现有方法受不可判定性、抽象损失与路径爆炸困扰,难以准确区分可达与不可达漏洞。本文提出 ConVReach,面向 C/C++ 程序融合静态与动态分析,以约束引导方式分解漏洞路径约束,独立验证可满足性后聚合可行路径,减少路径探索并避免路径爆炸。实验表明,该方法在准确率与效率上优于现有工具,显著降低误报漏报;在含 53 个 CVE 和 347 个标志的基准上,它识别出 61 个可达漏洞中的 59 个及全部 23 个不可达漏洞,前 6 小时比基线多检测 50% 以上可达漏洞。
In software development, investigating the accessibility of dependency vulnerabilities is of great importance, as third-party libraries often contain known vulnerabilities that could be exploited in the application's business logic. The existing accessibility analysis methods encounter challenges such as undecidability, abstraction loss, and path explosion in large-scale programs, resulting in an inaccurate distinction between accessibility vulnerabilities and non-accessibility vulnerabilities. This paper introduces an approach called ConVReach for analyzing the reachability of vulnerabilities in dependencies in C/C++ programs. ConVReach overcomes the problems of high abstraction loss and potential path explosion in the current methods by combining static and dynamic approaches, particularly a constraint-guided analysis method. This approach extracts and decomposes the path constraints that trigger vulnerabilities, independently verifies the satisfiability of each constraint, and then aggregates the feasible paths. This effectively reduces unnecessary path exploration and avoids the common path explosion issues in traditional methods. Experimental results show that ConVReach outperforms existing tools in both accuracy and efficiency, effectively distinguishing between reachable and unreachable vulnerabilities, and significantly reducing false positives and false negatives. We constructed a benchmark dataset to evaluate ConVReach , which includes 53 CVEs and 347 flags artificially inserted into various open-source projects. This dataset was designed to simulate both real-world vulnerabilities and complex scenarios. Through testing on this dataset, ConVReach demonstrated exceptional performance. It successfully identified 59 out of 61 reachable vulnerabilities and all 23 unreachable ones in the CVE dataset. Within a 24-hour time budget, ConVReach detected above 50% more reachable vulnerabilities than the baseline tools in the first 6 hours and nearly completed the detection of reachable vulnerabilities by the 12-hour mark. These results highlight ConVReach 's superior ability to handle both real-world vulnerabilities and challenging cases.
@article{paperbot3811,
title = {Determining the Unreachable: Constraint-Guided Reachability Analysis for Dependency Vulnerabilities},
author = {Wenbu Feng and Xiaohong Li and Ruitao Feng and Yao Zhang and Yuekang Li and Zhiping Zhou and Yunqian Wang and Yuqing Li},
journal = {Proceedings of the ACM on Programming Languages},
volume = {10},
number = {OOPSLA1},
year = {2026},
doi = {10.1145/3798255}
}