#38682 [SC-Medium] AugAssign evaluation order causing OOB write within the object
Description
Brief/Intro
Vulnerability Details
def parse_AugAssign(self):
target = self._get_target(self.stmt.target)
right = Expr.parse_value_expr(self.stmt.value, self.context)
if not target.typ._is_prim_word:
# because of this check, we do not need to check for
# make_setter references lhs<->rhs as in parse_Assign -
# single word load/stores are atomic.
raise TypeCheckFailure("unreachable")
with target.cache_when_complex("_loc") as (b, target):
left = IRnode.from_list(LOAD(target), typ=target.typ)
new_val = Expr.handle_binop(self.stmt.op, left, right, self.context)
return b.resolve(STORE(target, new_val))Impact Details
References
Proof of Concept
Proof of Concept
Previous#37113 [BC-Low] https://github.com/erigontech/erigon ), though it does not seem to be exploitable atNext#38828 [BC-Low] Decode RLP of Legacy Transaction Allows Tailing Bytes
Was this helpful?