Uitgesteld: Ethereum’s Constantinople update heeft beveiligingsprobleem
De langverwachte Constantinople upgrade van Ethereum is net uitgesteld nadat een kritieke kwetsbaarheid werd ontdekt in een van de geplande wijzigingen.
Een bedrijf dat gespecialiseerd is in het controleren van Smart Contracts genaamd ChainSecurity merkte dinsdag op dat het Ethereum Improvement Proposal (EIP) 1283 fouten bevat. Indien geïmplementeerd zou het aanvallers een mogelijkheid geven om ETH te stelen van gebruikers door een fout in de code. Tijdens een telefoongesprek met de ethereum ontwikkelaars werd besloten de Hard Fork tijdelijk uit te stellen en de problemen te beoordelen.
Deelnemers aan het gesprek waren onder meer ethereum bedenker Vitalik Buterin, ontwikkelaars Hudson Jameson, Nick Johnson en Evan Van Ness en Parity releasemanager Afri Schoedon. Een nieuwe datum voor de Hard Fork wordt beslist tijdens een andere Ethereum developers telefoongesprek op vrijdag.
Het gevonden beveiligingslek wordt een re-entry aanval genoemd. Het stelt een aanvaller in staat om dezelfde functies meerdere keren opnieuw in te schakelen zonder de gebruiker over de stand van zaken te informeren. Bij dit scenario zou een aanvaller in wezen altijd geld kunnen terug trekken zegt Joanes Espanol, CTO van blockchain analysebureau Amberdata.
Hij legde hierover verder uit:
“Stel je voor dat mijn smart contract een functie heeft die een bericht stuurt naar een ander contract . Als ik een hacker ben en ik de functie een tijdje kan activeren terwijl de vorige functie nog steeds wordt uitgevoerd, kan ik misschien geld stelen.”
Deze hack is vergelijkbaar met een van de zwakke plekken in de nu beruchte DAO-aanval van 2016. Deze aanval is ook de reden geweest dat Ethereum nu bestaat in ETH en ETC (Ethereum classic).
Het bericht van ChainSecurity legde uit dat voorafgaand aan Constantinopel een bepaalde slechte opslagoperatie op het netwerk 5.000 gas zou kosten. Dit is veel meer dan de 2.300 gas dat gewoonlijk wordt verzonden wanneer een contract wordt bebruikt. Als de upgrade echter werd geïmplementeerd, kostte een “slechte” opslag transactie 200 gas. Een “malafide contract kan de 2300 gas gebruiken om de variabele van het kwetsbare contract met succes te manipuleren.”
Constantinopel werd eerder verwacht afgelopen jaar maar werd vertraagd nadat er problemen waren gevonden tijdens het starten van de upgrades op het Ropsten testnet.