Solidity remediază o eroare a optimizatorului Yul care afectează versiunile 0.8.19–0.8.37
Solidity a remediat în versiunea 0.8.38 o eroare de gravitate redusă din optimizatorul Yul. Eroarea afectează contractele compilate cu optimizatorul Yul activat în Solidity 0.8.19–0.8.37. În anumite condiții, evidențele învechite pot face ca optimizatorul Yul să considere două poziții din memorie sau din zona de stocare ca fiind distincte, deși, în realitate, acestea se suprapun. Astfel, un contract poate returna o valoare învechită sau poate omite o scriere necesară.
Problema a fost raportată de Daniel Boye, iar ulterior Surya Prakash Akula a demonstrat că poate fi declanșată de cod Solidity obișnuit, fără assembly inline. Contractele compilate cu `--via-ir` ar putea fi afectate pe scară largă; în cazul fluxului implicit EVM assembly, expunerea este mai restrânsă. Eroarea nu poate apărea atunci când optimizatorul Yul este dezactivat.
Analiza efectuată de Solidity asupra a aproximativ 283.000 de compilări `via-ir` verificate și a 607.000 de compilări EVM assembly nu a identificat diferențe de bytecode între versiunile compilate cu și fără remediere. Echipa afirmă că acest lucru sugerează că eroarea este rară, dar nu garantează că niciun contract deja implementat nu este afectat. Dezvoltatorii ar trebui să treacă la Solidity 0.8.38 sau la o versiune ulterioară și să evalueze contractele implementate compilate cu versiuni afectate. Pentru traderi, este o alertă specifică privind fiabilitatea contractelor inteligente, nu o dovadă a unei perturbări ample a rețelei Ethereum sau a pieței.
Neutral
Anunțul este o informare privind securitatea și actualizarea pentru dezvoltatori, nu o dovadă a exploatării unei vulnerabilități, a unei întreruperi a rețelei sau a pierderii de fonduri. Solidity clasifică problema drept una cu gravitate redusă și afirmă că scanarea a aproape 890.000 de compilări verificate nu a identificat diferențe de bytecode între versiunile compilate cu și fără remediere. Problema necesită, de asemenea, condiții specifice legate de optimizator și de realocarea adreselor, ceea ce îi limitează amploarea probabilă. Aceste detalii fac improbabil un efect imediat și generalizat asupra ETH sau asupra prețurilor de pe piața cripto în ansamblu.
Pe termen scurt, traderii ar putea urmări comunicările proiectelor care folosesc Solidity 0.8.19–0.8.37, în special ale celor compilate cu optimizatorul Yul sau cu opțiunea `--via-ir`. Dacă un protocol utilizat pe scară largă raportează contracte vulnerabile deja implementate sau pierderi cauzate de exploatarea lor, încrederea s-ar putea diminua, ceea ce ar putea declanșa vânzarea tokenurilor unor proiecte specifice sau o creștere temporară a volatilității. Articolul nu menționează niciun incident de acest fel, așadar o interpretare pesimistă la nivel general nu este susținută.
Pe termen lung, remedierea din Solidity 0.8.38 și pașii de verificare recomandați ar trebui să reducă expunerea continuă, pe măsură ce echipele actualizează și testează implementările afectate. Ca și în cazul altor dezvăluiri privind vulnerabilitățile compilatoarelor, principalii indicatori de piață sunt confirmarea exploatării, TVL-ul protocoalelor afectate, suspendările de urgență și măsurile de remediere luate de proiecte — nu simpla existență a unei probleme a compilatorului care a fost deja corectată. Per ansamblu, știrea este neutră în privința direcției pieței, dar relevantă pentru monitorizarea riscurilor asociate contractelor inteligente.