Protocol wont work with tokens that can block or prevent transfers e.g Pausable, Blacklist, Blocking etc #188
Labels
bug
Something isn't working
downgraded by judge
Judge downgraded the risk level of this issue
duplicate-32
grade-c
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
sufficient quality report
This report is of sufficient quality
Lines of code
https://github.com/code-423n4/2023-09-centrifuge/blob/512e7a71ebd9ae76384f837204216f26380c9f91/src/PoolManager.sol#L128
https://github.com/code-423n4/2023-09-centrifuge/blob/512e7a71ebd9ae76384f837204216f26380c9f91/src/PoolManager.sol#L132
https://github.com/code-423n4/2023-09-centrifuge/blob/512e7a71ebd9ae76384f837204216f26380c9f91/src/InvestmentManager.sol#L136
https://github.com/code-423n4/2023-09-centrifuge/blob/512e7a71ebd9ae76384f837204216f26380c9f91/src/InvestmentManager.sol#L291
https://github.com/code-423n4/2023-09-centrifuge/blob/512e7a71ebd9ae76384f837204216f26380c9f91/src/UserEscrow.sol#L32
https://github.com/code-423n4/2023-09-centrifuge/blob/512e7a71ebd9ae76384f837204216f26380c9f91/src/UserEscrow.sol#L48
Vulnerability details
Impact
There are various tokens and token standards that can result in transfers being stopped, blocked, blacklisted, paused or disallowed. This entails protocols may function well with these tokens up until a time when any of above measures activated leading to inability to perform transfers into and out of the protocol
Proof of Concept
Tokens such as ERC20Pausable, Pausable Tokens like WBTC, ERC1400, Polymath like tokens,
USDC has Circle which can block certain addresses; it implies all instances mentioned in the few above links and many others not mentioned with token transfers where tokens can be in described category e.g USDC results in those function parts not being able to perform transfers if block activated on the tokens.
Tether can also blacklist address of users, contracts, protocol etc leading to inability to transfer to and from USDT stablecoin
Tools Used
Manual Analysis
Recommended Mitigation Steps
It is recommended such tokens be disallowed from being used with the protocol
Consider a whitelist of allowed tokens that excludes such tokens
Consider a policy to use the pause and unpause functionality if the tokens activate their blocking capabilities in instances that are detrimental to the protocol
Assessed type
Token-Transfer
The text was updated successfully, but these errors were encountered: