PatchLens: Configuration-Specific Vulnerability Analysis
Abstract
We study how security patches in highly configurable C/C++ systems map onto the space of compile-time variants. We formalize the Vulnerability Impact Condition (VIC)a Boolean predicate over configuration options that denotes all variants that contained the original flawand introduce _PatchLens_ , a purely static technique that recovers VICs by aligning AST-level patch hunks with source-level presence conditions and resolving file inclusion via lightweight build system analysis. Evaluating _PatchLens_ on 1,192 Linux kernel, 289 FFmpeg, and 100 PHP patches, we compute precise, human-readable VICs without the need to compile any system variant. The resulting predicates are compact (avg. 1 _._ 84 variables for Linux, 3 _._ 23 for FFmpeg, 1 _._ 04 for PHP) and show that only a small fraction of vulnerabilities are system-wide, which carry higher CVSS scores; meanwhile, CVE texts almost never encode the required options (1% average recall), motivating automated enrichment of CVE descriptions with VICs. _PatchLens_ and the accompanying dataset enable immediate applications in CI (variant-aware triage and test selection), targeted sampling and fuzzing, and feature risk scoring, offering a scalable, explainable path to vulnerability assessment in highly configurable software.