Verketten und kompromittieren: C++-Coroutinen anfällig für Code-Reuse-Angriffe trotz CFI

Ein Code-Reuse-Angriff namens „Coroutine Frame-Oriented Programming (CFOP)“ ist in der Lage, C++-Coroutinen über drei wichtige Compiler hinweg auszubeuten, nämlich Clang/LLVM, GCC und MSVC. CFOP kann sogar in Umgebungen ausgeführt werden, die durch Control Flow Integrity (CFI) geschützt sind, und zeigt somit relevante Sicherheitslücken in 15 dieser Abwehrmechanismen auf. Anstatt neuen Code einzuschleusen, verkettet CFOP bereits vorhandene Funktionen miteinander und erreicht die Ausführung beliebigen Codes, nachdem es coroutine-interne Speicherstrukturen beschädigt hat. Die Angriffsart wurde von Forschern des CISPA Helmholtz-Zentrums für Informationssicherheit entdeckt.
Quelle: IDW-Informaitionsdienst d. Wissenschaft