Het Grsecurity-project heeft details en een demonstratie gepubliceerd van een aanvalsmethode voor een nieuwe kwetsbaarheid (CVE-2021-26341) in AMD-processors met betrekking tot speculatieve uitvoering van instructies na onvoorwaardelijke forward jump-bewerkingen. Als de aanval succesvol is, kan via de kwetsbaarheid de inhoud van willekeurige geheugengebieden worden bepaald. Onderzoekers hebben bijvoorbeeld een exploit ontwikkeld waarmee de adresindeling kan worden bepaald en het KASLR-beschermingsmechanisme (kernel memory randomization) kan worden omzeild door ongeautoriseerde code uit te voeren in het ePBF-kernelsubsysteem. Andere aanvalsscenario's die tot een geheugenlek in de kernel kunnen leiden, kunnen niet worden uitgesloten.
Door deze kwetsbaarheid kunnen omstandigheden worden gecreëerd waaronder de processor, tijdens voorspellende uitvoering, speculatief de instructie verwerkt die volgt op de spronginstructie in het geheugen, direct na de spronginstructie (SLS, Straight Line Speculation). Bovendien werkt een dergelijke optimalisatie niet alleen voor voorwaardelijke sprongoperatoren, maar ook voor instructies die een directe onvoorwaardelijke sprong impliceren, zoals JMP, RET en CALL. Volgens de onvoorwaardelijke spronginstructies kunnen willekeurige gegevens worden geplaatst die niet voor uitvoering bestemd zijn. Zodra is vastgesteld dat de vertakking niet de uitvoering van de volgende instructie impliceert, draait de processor de status terug en wordt de speculatieve uitvoering niet meegenomen. Het spoor van de instructie-uitvoering blijft echter in de gedeelde cache staan en is beschikbaar voor analyse met behulp van extractietechnieken voor zijkanalen.
Net als bij de Spectre-v1-kwetsbaarheid vereist de aanval de aanwezigheid van bepaalde instructiereeksen (gadgets) in de kernel die leiden tot speculatieve uitvoering. Het blokkeren van de kwetsbaarheid houdt echter in dat dergelijke gadgets in de code worden geïdentificeerd en dat er extra instructies aan worden toegevoegd die speculatieve uitvoering blokkeren. Omstandigheden voor speculatieve uitvoering kunnen ook worden gecreëerd door gebruik te maken van programma's zonder verhoogde bevoegdheden die in de kernel draaien. virtuele machine eBPF. Om te voorkomen dat gadgets worden geconstrueerd met behulp van eBPF, wordt aanbevolen om niet-bevoorrechte toegang tot eBPF in het systeem uit te schakelen ("sysctl -w kernel.unprivileged_bpf_disabled=1").
De kwetsbaarheid heeft betrekking op processors gebaseerd op de Zen1- en Zen2-microarchitectuur, waaronder de eerste en tweede generatie AMD EPYC- en AMD Ryzen Threadripper-processors, evenals AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper PRO en APU's uit de A-serie. Om speculatieve uitvoering van instructies te blokkeren, wordt aanbevolen om INT3- of LFENCE-instructies aan te roepen na vertakkingsbewerkingen (RET, JMP, CALL).
Bron: opennet.ru
