Frankencoin - HaCk0's results

A decentralized and fully collateralized stablecoin.

General Information

Platform: Code4rena

Start Date: 12/04/2023

Pot Size: $60,500 USDC

Total HM: 21

Participants: 199

Period: 7 days

Judge: hansfriese

Total Solo HM: 5

Id: 231

League: ETH

Frankencoin

Findings Distribution

Researcher Performance

Rank: 196/199

Findings: 1

Award: $0.07

🌟 Selected for report: 0

🚀 Solo Findings: 0

Lines of code

https://github.com/code-423n4/2023-04-frankencoin/blob/1022cb106919fba963a89205d3b90bf62543f68f/contracts/Equity.sol#L313

Vulnerability details

Impact

Equity.restructureCapTable() only deletes the first entry in addressesToWipe and renders the functions core functionality useless.
Equity.restructureCapTable() would be used to burn tokens in case the Equity contract doesn't have enough funds left. But on line 313 it doesn't use the index i of the array but only always the first entry.
This bug prevents the function to doing the inteded job and each address would need to be delete with it's own transaction.

...
function restructureCapTable(address[] calldata helpers, address[] calldata addressesToWipe) public {
    require(zchf.equity() < MINIMUM_EQUITY);
    checkQualified(msg.sender, helpers);
    for (uint256 i = 0; i<addressesToWipe.length; i++){
        address current = addressesToWipe[0];
        _burn(current, balanceOf(current));
    }
}
...

Consider using addressToWipe[i] for current instead of addressToWipe[0]

#0 - c4-pre-sort

2023-04-20T14:24:18Z

0xA5DF marked the issue as duplicate of #941

#1 - c4-judge

2023-05-18T14:28:45Z

hansfriese marked the issue as satisfactory

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter