Umeå universitets logga

umu.sePublikationer
Driftmeddelande
För närvarande är det driftstörningar. Felsökning pågår.
Ändra sökning
RefereraExporteraLänk till posten
Permanent länk

Direktlänk
Referera
Referensformat
  • apa
  • ieee
  • vancouver
  • Annat format
Fler format
Språk
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Annat språk
Fler språk
Utmatningsformat
  • html
  • text
  • asciidoc
  • rtf
Twenty years later: evaluating the adoption of control flow integrity
Umeå universitet, Teknisk-naturvetenskapliga fakulteten, Institutionen för datavetenskap.
Umeå universitet, Teknisk-naturvetenskapliga fakulteten, Institutionen för datavetenskap.ORCID-id: 0000-0003-1383-0372
2025 (Engelska)Ingår i: ACM Transactions on Software Engineering and Methodology, ISSN 1049-331X, E-ISSN 1557-7392, Vol. 34, nr 4, artikel-id 103Artikel i tidskrift (Refereegranskat) Published
Abstract [en]

Memory corruption vulnerabilities still allow compromising computers through software written in a memory-unsafe language such as C/C++. This highlights that mitigation techniques to prevent such exploitations are not all widely deployed. In this article, we introduce SeeCFI, a tool to detect the presence of a memory corruption mitigation technique called Control Flow Integrity (CFI). We leverage SeeCFI to investigate to what extent the mitigation has been deployed in complex software systems such as Android and specific Linux distributions (Ubuntu and Debian). Our results indicate that the overall adoption of CFI (forward- and backward-edge) is increasing across Android versions (∼30% in Android 13) but remains the same low (1%) throughout different Linux versions. Our tool, SeeCFI, offers the possibility to identify which binaries in a system were compiled using the CFI option. This can be deployed by external security researchers to efficiently decide which binaries to prioritize when fixing vulnerabilities and how to fix them. Therefore, SeeCFI can help to make software systems more secure.

Ort, förlag, år, upplaga, sidor
Association for Computing Machinery (ACM), 2025. Vol. 34, nr 4, artikel-id 103
Nyckelord [en]
CFI, memory corruption vulnerabilities, mitigation techniques, software maintenance, static analysis
Nationell ämneskategori
Programvaruteknik Datorsystem
Identifikatorer
URN: urn:nbn:se:umu:diva-239174DOI: 10.1145/3702982ISI: 001490671100003Scopus ID: 2-s2.0-105005201930OAI: oai:DiVA.org:umu-239174DiVA, id: diva2:1970009
Tillgänglig från: 2025-06-16 Skapad: 2025-06-16 Senast uppdaterad: 2026-01-20Bibliografiskt granskad
Ingår i avhandling
1. Control flow integrity in practice: retrospectives, realities, and automated enforcement
Öppna denna publikation i ny flik eller fönster >>Control flow integrity in practice: retrospectives, realities, and automated enforcement
2026 (Engelska)Doktorsavhandling, sammanläggning (Övrigt vetenskapligt)
Alternativ titel[sv]
Kontrollflödesintegritet i praktiken : retrospektiv, verklighet och automatiserad tillämpning
Abstract [en]

Control Flow Integrity (CFI) is a well-established mitigation against control-flow hijacking attacks arising from memory corruption vulnerabilities. Over the past two decades, numerous CFI mechanisms have been proposed and integrated into modern compilers and software ecosystems. Despite this progress, CFI remains difficult to adopt in practice, and deployment decisions, compatibility constraints, and engineering overhead strongly influence its real-world security impact. 

This dissertation investigates Control Flow Integrity from the perspective of practical adoption and deployability. Rather than treating CFI as a purely theoretical protection, it examines how CFI is selected, integrated, and maintained in real-world software systems, and why these steps often fall short of idealized designs. The dissertation is structured around four complementary studies that together trace the path from measurement to guidance, to deployment experience, and finally to automated enforcement. 

The first study presents a large-scale empirical analysis of deployed binaries to assess the current state of LLVM-CFI adoption across major software platforms. It shows that while CFI deployment is increasing in some ecosystems, it remains uneven and limited, leaving substantial portions of the attack surface unprotected. The second study addresses the lack of practical guidance for developers by introducing a systematic taxonomy that maps LLVM-CFI variants to common classes of memory corruption vulnerabilities. This taxonomy provides actionable recommendations to support incremental, informed adoption of CFI in existing codebases.

The third study examines the practical challenges of deploying CFI in a complex, production-grade runtime. Through a detailed case study of integrating LLVM-CFI into a modern Java Virtual Machine, it demonstrates that compatibility issues, manual exclusions, and maintenance effort are central obstacles to effective enforcement, even when strong CFI mechanisms are available. These findings highlight the gap between CFI as designed and CFI as deployed. 

Building on these insights, the dissertation introduces an automated framework for CFI policy generation and enforcement. By reducing manual effort and mitigating compatibility barriers, this approach enables more consistent and scalable CFI deployment across large and evolving software systems.

Overall, the dissertation shows that the effectiveness of Control Flow Integrity in practice is shaped less by the availability of CFI mechanisms than by the feasibility of adopting them. By combining empirical measurement, practical guidance, deployment experience, and automation, this work contributes toward a more realistic and actionable understanding of CFI and provides concrete support for improving its deployment in real-world software systems.

Ort, förlag, år, upplaga, sidor
Umeå: Umeå University, 2026. s. 40
Nyckelord
control flow integrity, security, software security, program analysis, system security
Nationell ämneskategori
Säkerhet, integritet och kryptologi
Forskningsämne
datalogi
Identifikatorer
urn:nbn:se:umu:diva-248700 (URN)978-91-8070-888-3 (ISBN)978-91-8070-889-0 (ISBN)
Disputation
2026-02-17, Hörsal UB.A.230 - Lindellhallen 3, Lindellplatsen 1, 907 32 Umeå, Umeå, 13:00 (Engelska)
Opponent
Handledare
Forskningsfinansiär
Wallenberg AI, Autonomous Systems and Software Program (WASP), 570011241
Tillgänglig från: 2026-01-27 Skapad: 2026-01-19 Senast uppdaterad: 2026-01-20Bibliografiskt granskad

Open Access i DiVA

fulltext(5539 kB)240 nedladdningar
Filinformation
Filnamn FULLTEXT01.pdfFilstorlek 5539 kBChecksumma SHA-512
72ef45ae2d2df774d91674a3360b00b714a5fd6eda648f86444d7d55b2531df3be128ddfa31f267dd45ffb164667b08023a63b8a09aab57ff2ecbdee77a9734e
Typ fulltextMimetyp application/pdf

Övriga länkar

Förlagets fulltextScopus

Person

Houy, SabineBartel, Alexandre

Sök vidare i DiVA

Av författaren/redaktören
Houy, SabineBartel, Alexandre
Av organisationen
Institutionen för datavetenskap
I samma tidskrift
ACM Transactions on Software Engineering and Methodology
ProgramvaruteknikDatorsystem

Sök vidare utanför DiVA

GoogleGoogle Scholar
Totalt: 246 nedladdningar
Antalet nedladdningar är summan av nedladdningar för alla fulltexter. Det kan inkludera t.ex tidigare versioner som nu inte längre är tillgängliga.

doi
urn-nbn

Altmetricpoäng

doi
urn-nbn
Totalt: 270 träffar
RefereraExporteraLänk till posten
Permanent länk

Direktlänk
Referera
Referensformat
  • apa
  • ieee
  • vancouver
  • Annat format
Fler format
Språk
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Annat språk
Fler språk
Utmatningsformat
  • html
  • text
  • asciidoc
  • rtf