Solidity v0.8.9 is a pure bugfix release and fixes two important, but low severity, bugs.

  1. The first bug is related to immutables of signed integer types shorter than 256 bits. The bug causes sign extension (cleanup) of those values to not always being properly performed. It was introduced in Solidity 0.6.5. Read more in the respective security alert.
  2. The second bug was introduced with user defined value types in Solidity v0.8.8 (released two days ago). User defined types with underlying type shorter than 32 bytes used incorrect storage layout and wasted storage. Find more information in the respective security alert. A big shout out to Harry Altman (@haltman-at) of Truffle who discovered this bug only some hours after the release of 0.8.8!

Please do not use Solidity v0.8.8 in production and update your contracts to v0.8.9.

Full Changelog

Important Bugfixes:

  • Immutables: Properly perform sign extension on signed immutables.
  • User Defined Value Type: Fix storage layout of user defined value types for underlying types shorter than 32 bytes.

Bugfixes:

  • AST: Export canonicalName for UserDefinedValueTypeDefinition and ContractDefinition.

A big thank you to all contributors who helped make this release possible!

Download the new version of Solidity here.