Tranche members can freely mint Tranche tokens and drain Escrow #183
Labels
2 (Med Risk)
Assets not at direct risk, but function/availability of the protocol could be impacted or leak value
bug
Something isn't working
downgraded by judge
Judge downgraded the risk level of this issue
low quality report
This report is of especially low quality
unsatisfactory
does not satisfy C4 submission criteria; not eligible for awards
Lines of code
https://github.com/code-423n4/2023-09-centrifuge/blob/main/src/token/Tranche.sol#L72
https://github.com/code-423n4/2023-09-centrifuge/blob/main/src/LiquidityPool.sol#L231
https://github.com/code-423n4/2023-09-centrifuge/blob/main/src/InvestmentManager.sol#L148
https://github.com/code-423n4/2023-09-centrifuge/blob/main/src/InvestmentManager.sol#L255
Vulnerability details
Impact
Approved members of Tranche can mint Tranche tokens to themselves and drain the Escrow.
Proof of Concept
mint()
in Tranche.sol lacks access control for the caller.restricted
modifier only enforcesto
is an approved member of the Tranche.Consider following scenario:
requestRedeem()
function on the LiquidityPool contract.requestRedeem()
on InvestmentManager is triggered, and user supplies Tranche tokens.handleExecutedCollectRedeem()
.Add following PoC to Tranche.t.sol:
Tools Used
Manual Review/Foundry
Recommended Mitigation Steps
Assessed type
Invalid Validation
The text was updated successfully, but these errors were encountered: