Microsoft skulle ikke ha gjort denne endringen, men ble heldigvis reddet i siste sekund.
Endring i en Linux sikkerhetsmodul skapte nesten katastrofe
Det var «Control Flow Integrity» (CFI) på x86/AMD64-CPU-er fra Intel og AMD som ble påvirket, og endringen er » ARCH_HAS_EXECMEM_ROX»-funksjonen som er ment å forbedre ytelsen ved å utføre mellomlagring av RAM som har rettigheter til å utføre lese- og skrive-operasjoner. Problemet oppsto fordi endringen ble implementert uten godkjenning fra en x86-kjernevedlikeholder, noe som førte til feil og krasj i systemer som bruker CFI.
Heldigvis for alle parter involvert, og store deler av verden, ble ikke endringen rullet ut. Intel og AMD kritiserte nemlig kjapt den manglende koordineringen og krevde rask fjerning.

Kommunikasjonen mellom utviklerne er dessuten interessant å få innblikk i. Her er Intels Peter Zijlstra:
x86: Deaktiver EXECMEM_ROX-støtte. Hele tullet med module_writable_address() har gjort et stort rot av alternative.c, for ikke å nevne at det fortsatt inneholder feil – spesielt krasjer og feil med noen av CFI-variantene. Mike har jobbet med patcher for å rydde opp i dette igjen, men gitt tilstanden akkurat nå, er dette ikke klart. Deaktiver for nå, så prøver vi igjen i neste syklus.
AMDs Borislav Petkov var heller ikke fornøyde med nesten-hendelsen, og utrykkte i skarpt nok ordelag hva han mente:
Jeg elsker hvordan dette ble implementert uten en eneste godkjenning fra en x86-vedlikeholder, det ødela en hel del ting, og likevel er det fortsatt der i stedet for å bli revertert. La oss unngå å gjøre dette igjen, vær så snill. – Med vennlig hilsen, Boris.
ChatGPT om «Control-flow Enforcement Technology:»
- Control-flow Enforcement Technology (CET) er en sikkerhetsfunksjon utviklet av Intel for å beskytte datamaskiner mot angrep som utnytter svakheter i programmets kontrollflyt. CET er designet for å forhindre visse typer angrep som manipulerer kontrollflyten til programvare ved å introdusere to hovedfunksjoner: Shadow Stack og Indirect Branch Tracking (IBT).
- Shadow Stack:
- Formål: Beskytter mot Return-Oriented Programming (ROP)-angrep.
- Hvordan det fungerer: Shadow Stack er en separat, maskinvarekontrollert kopi av returadressene i et programs vanlige stakk. Når programmet forsøker å returnere til en tidligere funksjon, sammenlignes adressen i Shadow Stack med den på hovedstakken. Hvis det er et avvik, flagges dette som en sikkerhetstrussel og kan blokkere angrepet.
- Resultat: Hindrer skadevare i å kapre returadresser for å kjøre ondsinnet kode.
- Indirect Branch Tracking (IBT):
- Formål: Forsvarer mot Call-Oriented Programming (COP) og Jump-Oriented Programming (JOP)-angrep.
- Hvordan det fungerer: IBT kontrollerer at indirekte hopp og funksjonskall (som peker til dynamisk generert kode) peker til legitime adresser. Dette forhindrer at angripere omdirigerer kontrollflyten til ondsinnet kode.
- Hvorfor er CET viktig?
- Tradisjonelle sikkerhetsmekanismer som datakjøringsbeskyttelse (DEP) og adresseplasseringstilfeldighet (ASLR) kan omgås av avanserte angrep som ROP og JOP.
- CET styrker sikkerheten ved å adressere disse svakhetene direkte på maskinvarenivå, noe som gjør det betydelig vanskeligere for angripere å utnytte systemet.
- Hvem drar nytte av CET?
- CET er implementert i moderne Intel- og AMD-prosessorer og brukes av operativsystemer som Windows og Linux, samt applikasjoner som støtter teknologien. Det er særlig nyttig i miljøer der sikkerhet er kritisk, som servere, bedriftsnettverk og personlig databeskyttelse.
- Kort oppsummert:
- Control-flow Enforcement Technology gjør systemet sikrere ved å beskytte mot avanserte angrep som manipulerer programmets kontrollflyt. Dette oppnås gjennom maskinvarebasert overvåking av returadresser (Shadow Stack) og indirekte hopp (IBT).


