The _registerCollateralToken
function in the AaveDIVAWrapperCore
contract generates a wrapped token (WToken
) symbol by prefixing the original collateral token's symbol with "w"
. However, this approach can lead to ambiguity in environments like Arbitrum, where multiple tokens (e.g., USDC
and USDC.e
) share the same symbol ("USDC"
). This results in identical WToken
symbols, making it impossible to distinguish between the wrapped versions of these tokens.
In Arbitrum, tokens like USDC
(native) and USDC.e
(bridged) share the same symbol
value ("USDC"
).
USDC: https://arbiscan.io/address/0xaf88d065e77c8cc2239327c5edb3a432268e5831#readProxyContract
USDC.e: https://arbiscan.io/address/0xff970a61a04b1ca14834a43f5de4533ebddb5cc8#readProxyContract
When _registerCollateralToken
generates a WToken
symbol by simply prefixing the original token's symbol with "w"
, both USDC
and USDC.e
would result in the same WToken
symbol ("wUSDC"
).
This creates ambiguity, as the WToken
symbol no longer uniquely identifies the underlying collateral token.
Users and contracts interacting with the WToken
would be unable to distinguish between wrapped versions of USDC
and USDC.e
. This could lead to confusion, misallocations, or even financial losses if users mistakenly interact with the wrong WToken
.
The impact is Low, the likelihood is High, so the severity is Medium.
Manual Review
Add a new parameter string memory _wTokenSymbol
to the _registerCollateralToken
function, allowing the caller to specify the symbol
for the WToken
.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.