CVE-2024-34704CWE-682

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

Medium · published May 13, 2024

CVSS v3.1
5.9
EPSS
0%
Percentile
39.4
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
5.9 · MEDIUM
Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
CVSS v4.0
Not supplied
EPSS
0.00466 · 39.4th percentile
Weakness
CWE-682 · Incorrect Calculation
Published
2024-05-13T19:13Z
EPSS history
Timeline
  • 13 MAY 19:13Z
    era-compiler-solidity contains a `xor(zext(cmp), -1)` misoptimization
    cvelistv5