This repository has been archived by the owner on Jan 7, 2024. It is now read-only.
SanketKogekar - abi.encodePacked
should stop to be used since there are conversions around to deprecate it in future versions of Solidity
#310
Labels
Excluded
Excluded by the judge without consulting the protocol or the senior
Non-Reward
This issue will not receive a payout
SanketKogekar
medium
abi.encodePacked
should stop to be used since there are conversions around to deprecate it in future versions of SoliditySummary
In
verifyPrices()
, several dynamic arguments are passed toabi.encodePacked()
which can cause certain issues in current/future versions as described below. It would be better for protocol to preferabi.encode()
just to be safe.https://github.com/sherlock-audit/2023-06-symmetrical/blob/6d2b64b6732fcfbd07c8217897dd233dbb6cd1f5/symmio-core/contracts/libraries/LibMuon.sol#L50-L68
Vulnerability Detail
abi.encodePacked()
will be removed according to Solidity guide ethereum/solidity#11593Also it will cause vulnerability in case of future update where you add dynamic types as arguments. Described in here https://docs.soliditylang.org/en/v0.8.19/abi-spec.html#non-standard-packed-mode
Impact
abi.encodePacked
will behaviour unexpectedly in case of future Solidity update and should not be used. It will break the MerkleProof check if you add dynamic types in leaf argument in next protocol upgrade.Code Snippet
https://github.com/sherlock-audit/2023-06-symmetrical/blob/6d2b64b6732fcfbd07c8217897dd233dbb6cd1f5/symmio-core/contracts/libraries/LibMuon.sol#L50-L68
Tool used
Manual Review
Recommendation
Use
abi.encode()
orbytes.concat()
instead ofabi.encodePacked
.The text was updated successfully, but these errors were encountered: