Solidity corrige un bug de l’optimiseur Yul qui affecte les versions 0.8.19–0.8.37
Solidity a corrigé dans la version 0.8.38 un bogue de l’optimiseur Yul de faible gravité. Ce bogue affecte les contrats compilés avec l’optimiseur Yul activé dans Solidity 0.8.19–0.8.37. Dans certaines conditions, des informations de suivi obsolètes peuvent amener l’optimiseur Yul à considérer deux emplacements mémoire ou de stockage comme distincts alors qu’ils se chevauchent en réalité. Un contrat peut alors renvoyer une valeur obsolète ou ne pas effectuer une écriture nécessaire.
Le problème a été signalé par Daniel Boye, puis Surya Prakash Akula a montré qu’il pouvait être déclenché par du code Solidity ordinaire, sans assembly en ligne. Les contrats compilés avec `--via-ir` peuvent être largement concernés ; avec le pipeline evm assembly par défaut, le risque est plus limité. Le bogue ne peut pas se produire lorsque l’optimiseur Yul est désactivé.
L’analyse par Solidity d’environ 283 000 compilations `via-ir` vérifiées et de 607 000 compilations evm assembly n’a révélé aucune différence de bytecode entre les builds avec et sans le correctif. Selon l’équipe, cela laisse penser que le bogue est rare, sans toutefois garantir qu’aucun contrat déployé n’est concerné. Les développeurs devraient passer à Solidity 0.8.38 ou à une version ultérieure et évaluer les contrats déployés compilés avec les versions concernées. Pour les traders, il s’agit d’une alerte ciblée sur la fiabilité des contrats intelligents, et non d’un signe de perturbation généralisée du réseau Ethereum ou des marchés.
Neutral
Cette annonce est un avis de sécurité et de mise à niveau destiné aux développeurs, et non la preuve d’une exploitation, d’une panne du réseau ou d’une perte de fonds. Solidity estime que le bug est de faible gravité et indique que l’analyse de près de 890 000 compilations vérifiées n’a révélé aucune différence de bytecode entre les versions compilées avec et sans le correctif. Le problème nécessite également des conditions particulières liées à l’optimiseur et à la réattribution d’adresses, ce qui limite sa portée probable. Ces éléments rendent peu probable un effet immédiat à l’échelle du marché sur l’ETH ou sur les prix des cryptomonnaies en général.
À court terme, les traders pourraient surveiller les déclarations des projets utilisant Solidity 0.8.19–0.8.37, en particulier ceux compilés avec l’optimiseur Yul ou `--via-ir`. Si un protocole largement utilisé signale des contrats déployés vulnérables ou des pertes exploitables, la confiance pourrait s’affaiblir et entraîner des ventes du jeton du projet concerné ou une hausse temporaire de la volatilité. Aucun incident de ce type n’est rapporté dans cet article ; une interprétation baissière généralisée n’est donc pas étayée.
À plus long terme, le correctif de Solidity 0.8.38 et les étapes de vérification recommandées devraient réduire l’exposition persistante à mesure que les équipes effectuent les mises à niveau et testent les déploiements concernés. Comme pour les autres divulgations de vulnérabilités de compilateurs, les principaux signaux de marché sont les exploitations confirmées, la TVL des protocoles concernés, les mises en pause d’urgence et les mesures correctives des projets — et non la seule existence d’un problème de compilateur corrigé. Dans l’ensemble, cette nouvelle est neutre quant à l’orientation du marché, mais pertinente pour le suivi des risques liés aux contrats intelligents.