PoolTogether - y4y's results

General Information

Platform: Code4rena

Start Date: 04/03/2024

Pot Size: $36,500 USDC

Total HM: 9

Participants: 80

Period: 7 days

Judge: hansfriese

Total Solo HM: 2

Id: 332

League: ETH

PoolTogether

Findings Distribution

Researcher Performance

Rank: 66/80

Findings: 1

Award: $1.47

🌟 Selected for report: 0

🚀 Solo Findings: 0

Awards

1.4652 USDC - $1.47

Labels

bug
3 (High Risk)
satisfactory
sufficient quality report
upgraded by judge
:robot:_10_group
duplicate-59

External Links

Lines of code

https://github.com/code-423n4/2024-03-pooltogether/blob/480d58b9e8611c13587f28811864aea138a0021a/pt-v5-vault/src/PrizeVault.sol#L617

Vulnerability details

Impact

Incorrect amount of value will be decreased for yieldFeeBalance, and can potentially cause lose of share a recipient can get.

Proof of Concept

In function claimYieldFeeShares, fee recipient claims the yield fees and will be minted for equal amount of shares asked for:

    function claimYieldFeeShares(uint256 _shares) external onlyYieldFeeRecipient {
        if (_shares == 0) revert MintZeroShares();

        uint256 _yieldFeeBalance = yieldFeeBalance;
        if (_shares > _yieldFeeBalance) revert SharesExceedsYieldFeeBalance(_shares, _yieldFeeBalance);

        yieldFeeBalance -= _yieldFeeBalance;

        _mint(msg.sender, _shares);

        emit ClaimYieldFeeShares(msg.sender, _shares);
    }

But, in the function, yield balance is not decreased by the shares claimed for, instead, it's deducted by _yieldFeeBalance, which is essentially itself as:

uint256 _yieldFeeBalance = yieldFeeBalance;

This will clear out all yield balance, despite shares claimed may not be all of the yield fees. This will cause fee recipient receive less shares than expected.

Tools Used

Manual review.

Change the deduction to:

yieldFeeBalance -= _shares;

Assessed type

Context

#0 - c4-pre-sort

2024-03-11T21:51:39Z

raymondfam marked the issue as sufficient quality report

#1 - c4-pre-sort

2024-03-11T21:51:45Z

raymondfam marked the issue as duplicate of #10

#2 - c4-pre-sort

2024-03-13T04:38:28Z

raymondfam marked the issue as duplicate of #59

#3 - c4-judge

2024-03-15T07:37:31Z

hansfriese changed the severity to 3 (High Risk)

#4 - c4-judge

2024-03-15T07:39:07Z

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