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
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
| CVSS | Score | Vector | Source |
|---|---|---|---|
| 3.1 | 5.9 Medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N | GitHub_M |
Weaknesses
- CWE-682 Incorrect Calculation
Affected Products
| Product | Versions |
|---|---|
era-compiler-soliditymatter-labs |
|
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.