Thanks for joining the Solidity Summit 2025 🇦🇷 The recap and recordings are live!
{ skip to content }

Solidity 0.8.32/0.8.33 Release Announcement

Posted by Solidity Team on December 18, 2025

Releases

Today we are releasing versions 0.8.32 and 0.8.33 of the Solidity Compiler. 0.8.32 is a bugfix release that patches an important bug of low severity. It also resolves an issue that was hampering the use of modules as namespaces for events and errors. 0.8.33 contains a hotfix for a backwards-incompatible change unintentionally introduced by 0.8.32 that was only discovered shortly after the release was tagged.

Important Bugfixes

Lost Storage Array Write On Slot Overflow

A bug affecting operations that involve clearing of or copying from arrays that straddle the end of storage was reported by @Audittens and was fixed in this release.

The bug manifests only in contracts that use very unsual storage layouts intentionally bypassing compiler's safeguards against introducing variables that extend beyond the end of storage. This is only possible with the use of inline assembly or by declaring variables of dynamic types so large that the data area crosses the overflow boundary.

The bug already existed in the very first version of the compiler (v0.1.0). Both pipelines are affected and the bug is independent of the use of the optimizer.

Read our blog post describing the bug to learn more about how it was introduced, what kind of contracts could be affected, and what are its effects.

Other Notable Changes

Emitting Events and Reverting with Errors via Module Member Access

The new version eliminates the internal compiler error that would previously be triggered by attempts to emit an event or revert with an error referenced through a module. Now this code will compile as expected:

module.sol:

event Ev();
error Er();

contract.sol:

import "module.sol" as M;

contract C {
    function f() public {
        emit M.Ev();
        revert M.Er();
    }
}

This is a part of the effort to ensure feature parity between free functions and libraries. Definitions inside modules are our recommended alternative to namespacing using libraries.

Migration of solc-bin Hosting from AWS to Cloudflare

We moved hosting for historical release binaries of the compiler (solc-bin) from Amazon S3 to Cloudflare R2 as a part of our effort to reduce operational costs. This change should be perfectly transparent for users. The static binaries are still available at binaries.soliditylang.org and the filesystem structure did not change.

The update did temporarily affect the availability of the legacy solc-bin.ethereum.org domain. This domain is still supported but we are deprecating it, as we no longer control it. We recommend any tools which are still using it as the source of binaries to switch to binaries.soliditylang.org.

Hotfix Release

Unfortunately, while fixing one issue, version 0.8.32 unintentionally introduced a new one. The bug results in an internal compiler error in any code that references or calls getters generated for constant state variables. While the problem is not serious enough to result in miscompilations or security vulnerabilities and may at most prevent correct code from compiling, it affects patterns that are common enough that we decided to address it with an immediate release of 0.8.33.

Version 0.8.32 is still perfectly safe to use, but we recommend skipping it and going straight to 0.8.33.

Full Changelog

0.8.32

Important Bugfixes:

  • Code Generator: Fix a bug in clearing/copying of arrays that straddle the end of storage, potentially resulting in assignment/initialization/delete/push()/pop() skipping some or all of the intended storage writes.

Bugfixes:

  • Codegen: Fix internal compiler error when emitting events via module member access.
  • TypeChecker: Fix error and event selectors not being considered compile-time constant.
  • TypeChecker: Fix string.concat and bytes.concat with constant arguments not being considered compile-time constant.

0.8.33

Bugfixes:

  • TypeChecker: Fix internal error when accessing getters of constant variables.

How to Install/Upgrade?

To upgrade to the new version of the Solidity Compiler, please follow the installation instructions available in our documentation. You can download the release from Github: v0.8.33.

If you want to build from the source code, do not use the source archives generated automatically by GitHub. Instead, use the solidity_0.8.33.tar.gz source tarball.

And last but not least, we would like to give a big "Thank You" to all the contributors who helped make this release possible!

Next post

Get involved

GitHub

Twitter

Mastodon

Matrix

Discover more

BlogDocumentationUse casesContributeAboutForum

2025 Solidity Team

•

Security Policy

•

Code of Conduct