Skip to content

Commit b4e1474

Browse files
committed
security-fix: fix security issues.
1. fix multiClaim signature bypass issue. 2. security enhancement: disallowed an earndrop to claim more than it has transfered in.
1 parent 976f1f9 commit b4e1474

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

src/VestingEarndrop/VestingEarndrop.sol

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,9 @@ contract VestingEarndrop is Ownable2Step, EIP712 {
326326

327327
claimed[earndropId][params.leafIndex] = true;
328328
earndrop.claimedAmount += params.amount;
329+
if (earndrop.claimedAmount > earndrop.totalAmount) {
330+
revert InvalidParameter("Claimed amount exceeds total amount");
331+
}
329332

330333
// transfer claimFee to treasurer
331334
if (msg.value > 0) {
@@ -373,6 +376,9 @@ contract VestingEarndrop is Ownable2Step, EIP712 {
373376

374377
for (uint256 i = 0; i < params.length; i++) {
375378
ClaimParams calldata claim = params[i];
379+
if (claim.account != params[0].account) {
380+
revert InvalidParameter("Invalid account");
381+
}
376382

377383
if (claim.stageIndex >= earndrop.stages.length) {
378384
revert InvalidParameter("Invalid stage index");
@@ -392,6 +398,9 @@ contract VestingEarndrop is Ownable2Step, EIP712 {
392398

393399
claimed[earndropId][claim.leafIndex] = true;
394400
earndrop.claimedAmount += claim.amount;
401+
if (earndrop.claimedAmount > earndrop.totalAmount) {
402+
revert InvalidParameter("Claimed amount exceeds total amount");
403+
}
395404

396405
_processTransfer(earndrop.tokenAddress, claim.account, claim.amount);
397406

0 commit comments

Comments
 (0)