CVE-2024-45056

zksolc is a Solidity compiler for ZKsync. All LLVM versions since 2015 fold `(xor (shl 1, x), -1)` to `(rotl ~1, x)` if run with optimizations enabled. Here `~1` is generated as an unsigned 64 bits number (`2^64-1`). This number is zero-extended to 256 bits on EraVM target while it should have been sign-extended. Thus instead of producing `roti 2^256 - 1, x` the compiler produces `rotl 2^64 - 1, x`. Analysis has shown that no contracts were affected by the date of publishing this advisory. This issue has been addressed in version 1.5.3. Users are advised to upgrade and redeploy all contracts. There are no known workarounds for this vulnerability.
Configurations

Configuration 1 (hide)

cpe:2.3:a:matter-labs:zksolc:*:*:*:*:*:*:*:*

History

03 Sep 2024, 15:14

Type Values Removed Values Added
First Time Matter-labs
Matter-labs zksolc
References () https://github.com/llvm/llvm-project/commit/e48237df95b49a36b8ffceb78c8a58f4be1b4344 - () https://github.com/llvm/llvm-project/commit/e48237df95b49a36b8ffceb78c8a58f4be1b4344 - Patch
References () https://github.com/matter-labs/era-compiler-solidity/security/advisories/GHSA-fpx7-8vc6-frjj - () https://github.com/matter-labs/era-compiler-solidity/security/advisories/GHSA-fpx7-8vc6-frjj - Vendor Advisory
CPE cpe:2.3:a:matter-labs:zksolc:*:*:*:*:*:*:*:*

30 Aug 2024, 13:00

Type Values Removed Values Added
Summary
  • (es) zksolc es un compilador de Solidity para ZKsync. Todas las versiones de LLVM desde 2015 convierten `(xor (shl 1, x), -1)` en `(rotl ~1, x)` si se ejecutan con optimizaciones habilitadas. Aquí, `~1` se genera como un número de 64 bits sin signo (`2^64-1`). Este número se extiende a 256 bits en el destino EraVM, mientras que debería haberse extendido a signo. Por lo tanto, en lugar de producir `roti 2^256 - 1, x`, el compilador produce `rotl 2^64 - 1, x`. El análisis ha demostrado que ningún contrato se vio afectado a la fecha de publicación de este aviso. Este problema se ha solucionado en la versión 1.5.3. Se recomienda a los usuarios que actualicen y vuelvan a implementar todos los contratos. No existen workarounds para esta vulnerabilidad.

29 Aug 2024, 17:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-08-29 17:15

Updated : 2024-09-03 15:14


NVD link : CVE-2024-45056

Mitre link : CVE-2024-45056

CVE.ORG link : CVE-2024-45056


JSON object : View

Products Affected

matter-labs

  • zksolc
CWE
CWE-682

Incorrect Calculation