Solidity membetulkan pepijat pengoptimum Yul yang menjejaskan versi 0.8.19–0.8.37
Solidity telah membaiki pepijat pengoptimum Yul ber tahap keterukan rendah dalam versi 0.8.38. Pepijat ini menjejaskan kontrak yang dikompil dengan pengoptimum Yul diaktifkan dalam Solidity 0.8.19–0.8.37. Dalam keadaan tertentu, rekod dalaman yang lapuk boleh menyebabkan pengoptimum Yul menganggap dua lokasi memori atau storan sebagai berasingan, walaupun kedua-duanya sebenarnya bertindih. Ini boleh menyebabkan kontrak memulangkan nilai lama atau tidak melakukan penulisan yang diperlukan.
Masalah ini dilaporkan oleh Daniel Boye dan kemudian dibuktikan oleh Surya Prakash Akula boleh berlaku dalam kod Solidity biasa, tanpa inline assembly. Kontrak yang dikompil dengan `--via-ir` mungkin terjejas secara meluas; dengan pipeline evm assembly lalai, pendedahan kepada pepijat ini lebih terhad. Pepijat ini tidak boleh berlaku apabila pengoptimum Yul dinyahaktifkan.
Imbasan Solidity terhadap kira-kira 283,000 kompilasi `via-ir` yang disahkan dan 607,000 kompilasi evm assembly tidak menemui perbezaan bytecode apabila membandingkan binaan dengan dan tanpa pembaikan. Pasukan itu menyatakan bahawa ini menunjukkan pepijat tersebut jarang berlaku, tetapi tidak menjamin bahawa tiada kontrak yang telah digunakan terjejas. Pembangun patut menaik taraf kepada Solidity 0.8.38 atau yang lebih baharu dan menilai kontrak yang telah digunakan yang dikompil dengan versi terjejas. Bagi pedagang, ini ialah amaran khusus tentang kebolehpercayaan kontrak pintar, bukannya bukti gangguan besar-besaran pada rangkaian Ethereum atau pasaran.
Neutral
Pengumuman ini ialah notis keselamatan dan naik taraf pembangun, bukannya bukti eksploitasi, gangguan rangkaian atau kehilangan dana. Solidity menilai pepijat ini sebagai berisiko rendah dan menyatakan bahawa imbasan terhadap hampir 890,000 kompilasi yang disahkan tidak menemukan perbezaan bytecode antara binaan yang mempunyai pembaikan dengan binaan yang tidak mempunyainya. Isu ini juga memerlukan syarat khusus berkaitan pengoptimum dan penetapan semula alamat, yang mengehadkan kemungkinan jangkauannya. Perkara-perkara ini menjadikan kesan serta-merta yang meluas terhadap ETH atau harga kripto secara umum tidak mungkin berlaku.
Dalam jangka pendek, pedagang mungkin memerhatikan pendedahan daripada projek yang menggunakan Solidity 0.8.19–0.8.37, khususnya yang dikompil menggunakan pengoptimum Yul atau `--via-ir`. Jika protokol yang digunakan secara meluas melaporkan kontrak terpasang yang terdedah atau kerugian yang boleh dieksploitasi, keyakinan mungkin merosot lalu mencetuskan penjualan token khusus projek atau peningkatan volatiliti sementara. Tiada insiden sedemikian dilaporkan dalam artikel ini, jadi tafsiran menurun secara menyeluruh tidak disokong.
Dalam jangka panjang, pembaikan dalam Solidity 0.8.38 dan langkah pengesahan yang disyorkan sepatutnya mengurangkan pendedahan berterusan apabila pasukan menaik taraf dan menguji pelaksanaan yang terjejas. Seperti pendedahan kerentanan pengkompil yang lain, isyarat pasaran utama ialah eksploitasi yang disahkan, TVL protokol yang terjejas, jeda kecemasan dan tindakan pemulihan projek—bukan semata-mata kewujudan isu pengkompil yang telah ditampal. Secara keseluruhan, berita ini neutral terhadap arah pasaran, tetapi relevan untuk pemantauan risiko kontrak pintar.