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 product performs a calculation that generates incorrect or unintended results that are later used in security-critical decisions or resource management.