CFIghter: Automated Control-Flow Integrity Enablement and Evaluation for Legacy C/C++ Systems

πŸ“… 2025-12-27
πŸ“ˆ Citations: 0
✨ Influential: 0
πŸ“„ PDF
πŸ€– AI Summary
Compiler-level strict Control-Flow Integrity (CFI) is difficult to deploy in large C/C++ projects due to missing symbol visibility, type inconsistencies, and runtime behavioral anomalies. Method: This paper presents the first fully automated framework for enabling and evaluating CFI, integrating whole-program static analysis, guided runtime monitoring, and incremental policy tuning. It uniquely supports automatic detection, classification, and repair of CFI violations. Contribution/Results: Through iterative minimization and localized scope control, the framework injects necessary symbol visibility without manual code modification while strictly enforcing type-level CFI. Evaluated on GNU projects including util-linux, it resolves 95.8% of unintended CFI violations and preserves strict CFI for over 89% of indirect call sites, completely eliminating build-time visibility errors.

Technology Category

Application Category

πŸ“ Abstract
Compiler-based Control-Flow Integrity (CFI) offers strong forward-edge protection but remains challenging to deploy in large C/C++ software due to visibility mismatches, type inconsistencies, and unintended behavioral failures. We present CFIghter, the first fully automated system that enables strict, type-based CFI in real-world projects by detecting, classifying, and repairing unintended policy violations exposed by the test suite. CFIghter integrates whole-program analysis with guided runtime monitoring and iteratively applies the minimal necessary adjustments to CFI enforcement only where required, stopping once all tests pass or remaining failures are deemed unresolvable. We evaluate CFIghter on four GNU projects. It resolves all visibility-related build errors and automatically repairs 95.8% of unintended CFI violations in the large, multi-library util-linux codebase, while retaining strict enforcement at over 89% of indirect control-flow sites. Across all subjects, CFIghter preserves strict type-based CFI for the majority of the codebase without requiring manual source-code changes, relying only on automatically generated visibility adjustments and localized enforcement scopes where necessary. These results show that automated compatibility repair makes strict compiler CFI practically deployable in mature, modular C software.
Problem

Research questions and friction points this paper is trying to address.

Automates strict CFI deployment in legacy C/C++ systems
Resolves visibility and type issues causing unintended failures
Enables CFI without manual code changes via automated repairs
Innovation

Methods, ideas, or system contributions that make the work stand out.

Automated detection and repair of CFI policy violations
Integrates whole-program analysis with guided runtime monitoring
Applies minimal adjustments to CFI enforcement iteratively
πŸ”Ž Similar Papers
No similar papers found.
S
Sabine Houy
Department of Computing Science, UmeΓ₯ University
B
Bruno Kreyssig
Department of Computing Science, UmeΓ₯ University
Alexandre Bartel
Alexandre Bartel
University of Luxembourg
Security. Software Engineering