CVE-2024-34704

era-compiler-solidity contains a `xor(zext(cmp), -1)` misoptimization

State
Published
Severity
5.9 Medium
Published
May 13, 2024
Updated
Aug 2, 2024
Reserved
May 7, 2024

Read the record on cve.org

Description

era-compiler-solidity is the ZKsync compiler for Solidity. The problem occurred during instruction selection in the `DAGCombine` phase while visiting the XOR operation. The issue arises when attempting to fold the expression `!(x cc y)` into `(x !cc y)`. To perform this transformation, the second operand of XOR should be a constant representing the true value. However, it was incorrectly assumed that -1 represents the true value, when in fact, 1 is the correct representation, so this transformation for this case should be skipped. This vulnerability is fixed in 1.4.1.

Scores

CVSSScoreVectorSource
3.15.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:NGitHub_M

Weaknesses

Affected Products

ProductVersions
era-compiler-soliditymatter-labs
  • >= 1.2.0, <= 1.4.0Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.