Google patcht type confusion-bug in Chrome waarvoor exploit bestond

Google heeft een zeroday in Chrome gerepareerd. Een type confusion-bug in de Javascript engine had al een exploit, al geeft Google weinig details. Het is de zevende keer in 2022 dat er een zeroday in Chrome wordt gepatcht.

Google noemt de zeroday in een blogpost, maar het bedrijf geeft er weinig details over. Het is de enige patch die voor nu wordt doorgevoerd. De fix zit in de Stable-versie van 107.0.5304.87/.88 van Chrome.

Google geeft weinig details over de kwetsbaarheid. Het bedrijf wacht daar meestal mee tot de update door veel gebruikers is doorgevoerd. De bug is geclassificeerd als High, en heeft de code CVE-2022-3723 gekregen. Het gaat om een type confusion-kwetsbaarheid in de V8-JavaScript-engine van Chrome. In dat geval controleert de engine niet goed welk type object wordt ingeladen. Dat kan in ernstige gevallen mogelijk maken dat een aanvaller code kan uitvoeren, maar de impact is in dit geval niet bekend.

Google zegt dat een exploit voor de bug bestaat, maar het bedrijf geeft daar zoals gewoonlijk geen details over. Ook is niet duidelijk of de bug actief werd uitgebuit via die exploit. Het is de zevende keer in 2022 dat Google een zeroday in Chrome repareert. De kwetsbaarheid werd aangedragen door drie externe beveiligingsonderzoekers, Jan Vojtěšek, Milánek en Przemek Gmerek van Avast.

Door Tijs Hofmans

Redacteur

29-10-2022 • 09:31

17 Linkedin

Reacties (17)

Wijzig sortering
Wellicht had het handig geweest als er in het artikel staat wat nu een type confusion bug is?
Met 'type' bedoelen ze verschillende types variabelen (integers, strings, floats, array van variabelen, maar ook classes, etc.)
De 'confusion' komt van het verwarren van de types: ergens in de code is het bijvoorbeeld mogelijk om een variabele van een bepaald type aan te bieden, maar de code neemt aan dat het een ander type variabele is.

Dit kan bijvoorbeeld leiden tot buffer over flows (als de variabele die het denkt dat het is veel kleiner is, dan de daadwerkelijke variabele.)
Hier kan een aanvaller dan weer exploits mee maken.

Dit is natuurlijk een versimpeling, maar ik hoop dat het een beetje duidelijker is geworden

[Reactie gewijzigd door estej op 29 oktober 2022 09:55]

Classes zijn geen types. JavaScript heeft een sugar syntax met de keyword, maar het is een Prototype based language. Het zijn gewoon objects. Net zoals arrays.

Types bepalen hoe iets in het geheugen wordt opgeslagen en hoe de CPU er mee omgaat. De abstractie in talen biedt vervolgens een set van standaard methods aan per type om de data te kunnen muteren.
Hier wordt wel helder uitgelegd hoe een dergelijke type vergissing kan ontstaan: https://googleprojectzero...ome-infinity-bug.html?m=1
Een verkorte versie van jouw link had dus in het artikel kunnen staan…
https://hackingportal.git...usion/type_confusion.html
According to Common Weakness Enumeration (CWE) The program allocates or initializes a resource such as a pointer, object, or variable using one type, but it later accesses that resource using a type that is incompatible with the original type. When the program accesses the resource using an incompatible type, this could trigger logical errors because the resource does not have expected properties. In languages without memory safety, such as C and C++, type confusion can lead to out-of-bounds memory access.
Als ik het goed begrijp, dan komt het omdat het programma in de war geraakt over het type data dat aangeboden wordt. Die verwarring kan dan uitgebuit worden.

Maar dat wordt ook in het artikel genoemd:
In dat geval controleert de engine niet goed welk type object wordt ingeladen. Dat kan in ernstige gevallen mogelijk maken dat een aanvaller code kan uitvoeren, maar de impact is in dit geval niet bekend.

[Reactie gewijzigd door Aegir81 op 29 oktober 2022 09:47]

Is dit een bug in Chrome of Chromium?
Als het de laatste is zijn er meer browsers getroffen.
De bug zit in de javacript engine, ik neem aan dat Chromium dezelfde engine gebruikt. Alternatieve browsers kunnen evenwel hun eigen engine geimplementeerd hebben.
Niet alleen browsers, denk bijvoorbeeld ook aan al je NodeJS containers. @Tijs Hofmans

Naast je eigen containers moeten ook SaaS platforms zoals Google Functions, Microsoft Azure Functions en AWS Lambda worden geupdate (doet de provider zelf).
Dat gaat om miljarden instances.

https://nodejs.dev/en/learn/the-v8-javascript-engine/

[Reactie gewijzigd door djwice op 29 oktober 2022 22:14]

Interessant, ik wilde even kijken welke Chrome versie hier draait, hij begon gelijk te updaten.
Had ie dat ook gedaan als ik de versie niet gecheckt had bij help -> over Chrome?
Ja, als je Chrome geinstalleerd hebt (en dus niet als portable app gebruikt), dan installeert deze ook een service welke periodiek gaat kijken voor updates, zelfs als Chrome niet draait. Dit in tegenstelling tot Firefox dat zichzelf alleen kan bijwerken wanneer Firefox gestart is.
Dit in tegenstelling tot Firefox dat zichzelf alleen kan bijwerken wanneer Firefox gestart is.
Firefox heeft sinds v90 ook gewoon automatische updates in de achtergrond.
De Mozilla maintenance service bestaat al lang hoor.
Dit zijn de details die ik terugvind:
Google Chrome could allow a remote attacker to execute arbitrary code on the system, caused by a type confusion in V8. By persuading a victim to visit a specially crafted Web site, a remote attacker could exploit this vulnerability to execute arbitrary code or cause a denial of service condition on the system.
Fijn dat je gefixt is. Browser die ik regelmatig gebruik. Maar helaas niet altijd even veilig..
Rare opmerking.

Er wordt software gemaakt, en men ontdekt manieren om die software te laten crashen. Die wordt opgelost.

Het is niet heel anders als de uitvinding van autogordels, in mijn ogen. Ervoor was het zo veilig als we konden, erna nog veiliger.

De metric moet niet zijn of deze bugs bestaan, maar hoe lang het duurt voor ze worden opgelost. Software kan nu eenmaal op nog veel meer manieren fout gaan, dan auto's.
Dat er adequaat op gereageerd wordt lijkt mij een goed uitgangspunt. Een wereld zonder fouten bestaat immers niet.
Maar desondanks hoop ik dat ik mijn sentiment over het geheel "helaas niet altijd even veilig", wat blijkt uit het verhaal, ook mag delen.
Ik hoop niet dat ik daarmee iemand voor de borst stoot. En mocht dat toch zo zijn, was niet de insteek, trek t je niet aan.

Op dit item kan niet meer gereageerd worden.


Google Pixel 7 Sony WH-1000XM5 Apple iPhone 14 Samsung Galaxy Watch5, 44mm Sonic Frontiers Samsung Galaxy Z Fold4 Insta360 X3 Nintendo Switch Lite

Tweakers is samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer onderdeel van DPG Media B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee