Google verhelpt opnieuw zeroday in Chrome, tweede keer in week tijd

Google heeft voor de tweede keer in korte tijd een zeroday in Chrome verholpen. De kwetsbaarheid is een integeroverflow in de tekstrenderengine Skia waarmee het mogelijk was uit de sandbox te ontsnappen. Die exploit werd in het wild gebruikt, zegt Google.

Google heeft de bugfix doorgevoerd in Chromium. Voor Chrome zit de fix in de Stable Channel. Dat zijn versies 112.0.5615.137/138 voor Windows en 112.0.5615.137 voor macOS. In de update zijn in totaal acht kwetsbaarheden gerepareerd. Vijf daarvan werden door externe onderzoekers aangedragen. In één geval ging het om een zeroday.

Deze zeroday is specifiek een kwetsbaarheid CVE-2023-2136, een integeroverflow in de Skia-repository. Skia is een engine die in Chromium wordt gebruikt om tekst te renderen. De kwetsbaarheid wordt als hoog risico ingeschat. Volgens Google kan een aanvaller met een exploit op een speciaal gemaakte HTML-pagina uit de sandbox ontsnappen. Verschillende andere bugs die zijn gerepareerd, hebben ook een hoog risico. Het gaat onder andere om twee out of bounds-kwetsbaarheden voor het geheugen die in de Service Worker-api zaten en een use after free in DevTools.

Zoals gebruikelijk geeft Google geen verdere informatie over hoe de kwetsbaarheid in het wild werd misbruikt. Het is de tweede keer in korte tijd dat het bedrijf een actief misbruikte bug in de populaire browser repareert. Dat gebeurde op zaterdag ook al. Of er een overeenkomst tussen de twee bugs bestaat, is niet bekend.

Door Tijs Hofmans

Nieuwscoördinator

19-04-2023 • 13:07

20

Submitter: Anonymoussaurus

Lees meer

Reacties (20)

20
20
11
3
0
8
Wijzig sortering

Sorteer op:

Weergave:

Ik ben zelf ontwikkelaar maar ik begrijp echt niet hoe een Integer overflow kan leiden tot het uitvoeren van code buiten een sandbox. Is dit in Jip en Janneke taal uit te leggen of is de materie zo diep dat ik het beter kan accepteren voor wat het is?
https://en.wikipedia.org/wiki/Return-oriented_programming

Als die integer wordt gebruikt om (bijvoorbeeld) in een array op de stack te schrijven, dan kan je het return-address op die stack aanpassen. De thread jumpt vervolgens naar een onverwachte locartie in het geheugen. Als je dan ook nog kan zorgen dat op die plaats jouw code staat (bijvoorbeeld vermomd als de binary data van een of ander "onschuldig" gifje), dan ben je binnen
Ik als iets meer dan leek:
een overflow is meestal te veroorzaken door een taal te gebruiken die daar gevoelig voor is. (C en zo).
Wat er gebeurd: je maakt een array, met een bepaalde lengte. Zeg max grootte is 20 items in de array.
Vervolgens ga je de array vullen met 50 items, en daarmee heb je een overflow.

Als je dat op de juiste manier doet kun je ofwel dingen lezen waar je niet bij mag, of dingen schrijven waar je niet bij mag.

Dit is misschien een beetje kort door de bocht, maar volgens mij de kern van het probleem.
Een integer overflow kan leiden tot een negatief resultaat waar een positief resultaat verwacht wordt. Als dat wordt gebruikt om een geheugenadres te berekenen waar je iets wegschrijft kun je buiten je grenzen komen. Daar zou een sandbox tegen moeten beschermen maar dat gebeurt kennelijk niet.
Een andere mogelijkheid is dat de overflow in de code van de sandbox zelf zit.
In sommige gevallen kan een integer overflow leiden tot onverwacht en onbedoeld gedrag, inclusief het uitvoeren van code. Dit kan gebeuren wanneer de integer-variabele wordt gebruikt als een geheugenadres of een pointer, en de overflow ervoor zorgt dat deze wijst naar een andere locatie in het geheugen. Als deze locatie uitvoerbare code bevat, kan het programma per ongeluk deze code uitvoeren, met mogelijk schadelijke of onvoorspelbare gevolgen.
Als je een overflow gevonden hebt , kun je daar soms aribitraire code uitvoeren. Paletten als metasploit hebben kant en klare stukjes binaire code voor je die je op die plek kan gebruiken om zo een minimale achterdeur te openen (bijvoorbeeld een poort openen en luisteren). Dat gebruik je dan weer als stapsteen om een complexere exploit te pushen.

Omdat Chome voor iedereen dezelfde versie is (de laatste) kun je dit thuis eerst rustig uitpuzzelen en daarna heel gericht uitrollen.

https://youtu.be/ncBblM920jw

[Reactie gewijzigd door BCC op 23 juli 2024 18:15]

Ik ben ook ontwikkelaar en weet ook niet veel hiervan af. Maar wat ik me bij een integer overflow voorstel is dat het mogelijk is om een grotere integer naar Chrome te schrijven dan waar ruimte voor gereserveerd is door Chrome. Hierdoor wordt er geschreven in het geheugen wat voor iets anders gereserveerd is door Chrome of het besturingssysteem.

De stappen daarna heb ik nooit geprobeerd of geleerd, dus ik heb geen idee wat ze daarna doen om dit in hun voordeel te gebruiken.
Ik ben ook ontwikkelaar. Het probleem voor veel ontwikkelaars is dat we niet denken als hacker. Ik ben regelmatig verbaast wat voor fouten uit te buiten zijn maar snap ze wel als ze eenmaal uitgelegd zijn. Helaas is dat altijd binnen één context en nooit in Jip en Janneke taal.
Ik heb net gekeken of mijn Acer chromebook ook update, maar dat doet die niet. Blijft op versie 112.0.5615.62. Weet iemand waarom dit achterloopt en hoeveel tijd dit kost? Of zit de Skia repository misschien niet in een chromebook?
Ah het duurt wel even voordat je Chromebook een update voor je ACER Chromebook vindt.
Ben benieuwd of Edge ook kwetsbaar is, gezien deze ook onder water Chromium is.
Yep, het is een kwetsbaarheid in Chromium.
Google heeft de bugfix doorgevoerd in Chromium.
Microsoft zal snel volgen.
Ik denk dat de browsers te complex zijn geworden met alle toevoegingen als een PDF viewer, video player en het renderen van allerlei scripts. Het lijkt bijna onmogelijk om alle code door te spitten op potentiële fouten. Van alle miljoenen gebruikers zal er altijd eentje zijn die net dat ene gaatje weet te vinden. De ontdekker wil daar geld voor hebben, dus vroeg of laat wordt het bekend. Tot die tijd kan er veel ellende aangericht worden.

Ik verlang wel eens terug naar de simpele browser als Netscape Navigator, die "gewoon" HTML draaide.
Niet let je om Javascript (waar hier hier voornamelijk steeds om gaat) uit te schakelen in je huidige moderne browser. Dat 95% van de websites dan niet meer werken, tsja ach.

Dit soort dingen zijn van alle tijden en zal ook altijd blijven ;)
Ik verlang wel eens terug naar de simpele browser als Netscape Navigator, die "gewoon" HTML draaide.
Ik herinner me nog dat die Windows regelmatig liet crashen.
Nu was ik eerder ook altijd een gebruiker van de browser Chrome, maar heb een paar maanden geleden de overstap gemaakt naar de browser die eerder (voordat Chrome überhaupt bestond geloof ik) altijd mijn voorkeur had, Firefox genaamd, en kan daarover melden dat deze gisteren ook een update heeft gehad, als deze voor hetzelfde gebeuren al dit hierboven in het artikel bedoeld was kon ik alleen niet echt duidelijk uit opmaken, maar wellicht wel even prettig om hier melding van te maken, dus bij deze :)
nee gezien firefox een andere engine gebruikt voor zover ik weet om deze zaken te regelen geld deze bug voor zover ik weet niet voor FF
En zo'n vermoeden had ik dan ookal, maar zoals gezegd wel even handig om vermeld te hebben dacht ik zo.
@Wody "Nieuws gemist" Yes dat is het geval, en dan ook thx voor het nog even aanstippen :)

[Reactie gewijzigd door SSDtje op 23 juli 2024 18:15]

Op dit item kan niet meer gereageerd worden.