Er zitten een aantal lekken in de populaire ESP32- en ESP8266-IoT-microcontrollers. Daarmee is het mogelijk ontwikkelbordjes met die soc's te laten crashen, maar ook om een sessie over te nemen. De meeste kwetsbaarheden zijn inmiddels opgelost, maar één staat nog open.
Het gaat om drie lekken in de ESP8266-chips en de daarop gebaseerde ontwikkelboards, waarvan twee ook gelden voor ESP32-chips. De lekken werden ontdekt door Matheus Garbelini, die details over de kwetsbaarheden op GitHub plaatste.
Een van de kwetsbaarheden, CVE-2019-12588, is een vrij simpele methode waarmee een aanvaller de ESP8266 kan laten crashen. Dat is mogelijk omdat de chipset bij het maken van een verbinding niet controleert hoeveel mogelijke authenticatiemethodes er beschikbaar zijn als de ESP met een access point verbindt. Door een grote hoeveelheid informatie te sturen naar een ESP kan een buffer overflow ontstaan waardoor het apparaat kan crashen. Een dergelijke kwetsbaarheid zit ook in de SDK's van de ESP32 en ESP8266. Ook die kan worden bestookt met informatie, zelfs als het apparaat al aan een systeem is gekoppeld. Volgens Garbelini is CVE-2019-12586 gerepareerd voor de ESP32, maar nog niet volledig voor de risc-core voor het besturingssysteem van de ESP8266. De patches die wel beschikbaar zijn, zijn inmiddels doorgevoerd in de Arduino-ide.
De derde kwetsbaarheid, CVE-2019-12587, maakt het mogelijk om een sessie op de ESP's helemaal over te nemen. Dat gebeurt doordat de Pairwise Master Key tijdens het pairen in een sessie kan worden onderschept en gemanipuleerd, zodat een aanvaller met een zelfgemaakt access point een sessie kan afluisteren. Wel lukt dat alleen als de communicatie tussen de ESP's en het access point niet versleuteld zijn met tls, wat vaak wel het geval is. Garbelini wijst erop dat de andere twee lekken kunnen worden gebruikt om de ESP's te resetten, en zo een nieuwe pairing op te zetten die vervolgens met het derde lek kan worden onderschept. Ook dat lek zou volgens de ontdekker nog openstaan op de ESP8266.