-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rageQuit()
maybe can't execute as it should
#387
Comments
QA: L |
ydspa marked the issue as insufficient quality report |
ydspa marked the issue as primary issue |
gzeon-c4 marked the issue as unsatisfactory: |
In order to use the The likelihood is low but the impact is high Thanks! |
Bumping to QA, it is possible to fix by a governance proposal with arbitrary delegate call |
gzeon-c4 changed the severity to QA (Quality Assurance) |
gzeon-c4 marked the issue as grade-b |
@gzeon-c4 |
Sorry, was wrong about that. |
While it'd be better practice to use pull-over-push, our team has decided we generally don't opt to follow it when it hurts UX. Agree this seems like a QA over Med. |
@gzeon-c4 Did I miss any part from Readme or Docs talk about that? I believe saving the user from sacrificing his funds in order to |
Realistically there are infinite ways an external integration can rug this protocol, the risk is low. QA is the final decision. |
Lines of code
https://github.com/code-423n4/2023-10-party/blob/main/contracts/party/PartyGovernanceNFT.sol#L415-L424
Vulnerability details
Description
The
PartyGovernanceNFT.rageQuit()
is to burn the governance NFT of the user and withdraw a fair share of the selected ERC20 tokens and ETH from the party.The users can specify the fungible tokens to withdraw (ERC 20)
However, after determining the overall amount to be withdrawn, if the distribution fee bps is greater than zero so
feeBps > 0
The protocol will take a fee from the amount
As the transferred token could be any ERC20 token If the distribution fee recipient
feeRecipient
is added to the USDC blacklistby adding the
feeRecipient
address to the USDC or any token blacklist users will get forced to leave their shares of USDC in the party in order torageQuit()
successfullyIt's important to be aware that addresses can be blacklisted by Circle at any given time MORE HERE
Impact
Tools Used
Manual Review
Recommended Mitigation Steps
Instead of sending tokens directly to the
feeRecipient
, consider storing the number of tokens in variables and having thefeeRecipient
claim it later.This approach allows for better control. the
feeRecipient
can claim the tokens at a later point, ensuring a more organized and flexible transaction process.or add the ability to change the address of
feeRecipient
Assessed type
Other
The text was updated successfully, but these errors were encountered: