Lucene search
+L
Code423n4Recent

10190 matches found

Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•7 views

If no association type matched, user will end up paying fee for nothing

Lines of code Vulnerability details Impact Users can add a new entry for the given subprotocol to the provided CID NFT. There are possible three different association types ordered, primary, active that can be used to model different types of associations between the CID NFT and subprotocol. For...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•8 views

Hacked or malicious owner can steal all tokens

Lines of code Vulnerability details Tokens for all active drips are stored in the DripsHub contract. Since DripsHub is an upgradeable ERC1967Proxy, a malicious or hacked owner can simply upgrade the contract to include e.g., the following function: function stealTokensIERC20 token, address to,...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•10 views

Upgraded Q -> 2 from #748 [1675439377792]

Judge has assessed an item in Issue 748 as 2 risk. The relevant finding follows: L MultisigManager doesn't have unregister function MultisigManager.sol contains a hard limit of MULTISIGLIMIT to 10. Meanwhile in the contract, there are functions like registerMultisig, enableMultisig, and...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•7 views

Upgraded Q -> 2 from #508 [1675443058277]

Judge has assessed an item in Issue 508 as 2 risk. The relevant finding follows: New address and existing address inputs can be the same in upgradeExistingContract --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•7 views

CidNFT#add will break if _type is not passed in correctly

Lines of code Vulnerability details Impact CIDNFT holders that wants to add subprotocols to their NFT will not be able to anymore because the subprotocol NFT will be stuck in the CidNFT.sol contract. Proof of Concept When a CIDNFT holder wants to add subprotocols to their NFT, he will call...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•29 views

Solmate safeTransfer and safeTansferFrom does not check the code size of the token address

Lines of code Vulnerability details Impact The safeTransfer and safeTransferFrom don't check the existence of code at the token address. This is a known issue while using solmate's libraries. Hence this may lead to miscalculation of funds and may lead to loss of funds, because if safeTransfer and...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•6 views

Some ERC20 tokens deduct a fee on transfer

Lines of code Vulnerability details Impact Some ERC20 token implementations have a fee that is charged on each token transfer. This means that the transferred amount isn't exactly what the receiver will get. A call to ERC20token.transferrecipient, 100 with a fee-on-transfer of 5% will entitle the...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•15 views

MinipoolManager: node operator can avoid being slashed

Lines of code Vulnerability details Impact When staking is done, a Rialto multisig calls MinipoolManager.recordStakingEnd . If the avaxTotalRewardAmt has the value zero, the MinipoolManager will slash the node operator's GGP. The issue is that the amount to slash can be greater than the GGP balan...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•10 views

User can lose NFT if wrong type is given to add function

Lines of code Vulnerability details Impact If a user when trying to add its NFT to a given subprotocol provide a wrong association type by accident to the add function, the NFT will be transferred to the CidNFT contract but it will not be associated with any protocol type, because of that when th...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•13 views

Reentrancy due to lack of check-effect-interact pattern by valid Driver users

Lines of code Vulnerability details Impact In a Re-entrancy attack, a malicious contract calls back into the calling contract before the first invocation of the function is finished. This may cause the different invocations of the function to interact in undesirable ways, especially in cases wher...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•12 views

DIVISION BY _AMT_PER_SEC_MULTIPLIER AT EACH STEP OF THE ARITHMETIC OPERATION BEFORE MULTIPLICATION RESULTS IN ROUNDING ERROR

Lines of code Vulnerability details Impact In the drippedAmt function of the Drips.sol contract, the assembly is used to calculate the amount dripped over a time range. Inside the assembly amtPerCycle is calculated by multiplying cycleSecs and amtPerSec and dividing by AMTPERSECMULTIPLIER to remo...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•12 views

User may charge any amount of fees when registering a subprotocol

Lines of code Vulnerability details Impact When registering a subprotocol, the user may enter any amount of fees. There are no checks implemented. Proof of Concept The register function does not have a check for the fee. A limit may be imposed otherwise a user can register a subprotocol with any...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•11 views

int128 cast underflow in _receiveDripsResult()

Lines of code Vulnerability details Impact In receiveDripsResult, the type cast of uint128 could underflow, and result in wrong receivedAmt. The impacts could be: wrong amount being transferred to users and drain the protocol fund inaccurate transfer amount, some users lose fund and some receive...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•18 views

DoS with block gas limit in squeezeDrips

Lines of code Vulnerability details Squeezing drips requires verifying the entire history of that drip. This means iterating over an unbounded loop of the size of the history for uint256 i = 0; i dripsHistory.length; i++ DripsHistory memory drips = dripsHistoryi; bytes32 dripsHash =...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•11 views

Incorrect shift in assembly

Lines of code Vulnerability details Impact Shift operators shlx, y, shrx, y, sarx, y in Solidity assembly apply the shift operation of x bits on y and not the other way around, which may be confusing. Check if the values in a shift operation are reversed. Proof of Concept File: Drips.sol 823: val...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•7 views

_squeezeDrips() passed the amount argument in place of amtPerSec for the _addDeltaRange, causing either underflow or the sender losing lots of fund!

Lines of code Vulnerability details Impact Detailed description of the impact of this finding. squeezeDrips passes the amount argument in place of amtPerSec for its callee addDeltaRange in the following line addDeltaRangestate, cycleStart, cycleStart + 1, -int256amt AMTPERSECMULTIPLIER; The last...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•9 views

Misuse of a Boolean constant

Lines of code Vulnerability details Impact Use of Boolean constants true/false in code is indicative of flawed logic. Boolean constants in code have only a few legitimate uses. Other uses in complex expressions, as conditionals indicate either an error or, most likely, the persistence of faulty...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•18 views

Lack of double step transfer in admin modification in a upgradeable contract is dangerous

Lines of code Vulnerability details Lack of double step transfer in admin modification in a upgradeable contract is dangerous Summary Double step transfer of admin / ownership should be a must in upgradeable contracts Vulnerability Detail Admin is changed with changeAdmin that calls changeAdmin,...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•18 views

Upgraded Q -> 2 from #508 [1675443068820]

Judge has assessed an item in Issue 508 as 2 risk. The relevant finding follows: Cannot add additional Multisig when 10 Multisig addresses are registered --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•15 views

setDrips may distribute the drip too fast if the time hints are not good enough

Lines of code Vulnerability details Impact The setDrips function is used to configure a drip. It can either be withdrawing it, adding a new one, or even managing an existing one by updating the configuration. Internally, it account for the drips that are yet to be distributed to refund them to th...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•9 views

RETURNS EMPTY UINT256 configs MEMORY ARRAY SINCE THE UPDATED MEMORY ARRAY IS NOT RETURNED

Lines of code Vulnerability details Impact buildConfigs function inside the Drips.sol is required to build a preprocessed list of drips configurations from receivers. Thus in its function implementation it initialized the uint256 memory configs array and send it as an argument to the addConfig...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•11 views

Upgraded Q -> 2 from #260 [1675460942583]

Judge has assessed an item in Issue 260 as 2 risk. The relevant finding follows: L2 Withdrawable minipool can be finished before funds are withdrawn --- The text was updated successfully, but these errors were encountered: All reactions...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•29 views

Potential DOS in Contract Inheriting UUPSUpgradeable.sol

Lines of code Vulnerability details Impact There is a contract which inherit UUPSUpgradeable.sol, namely; Managed.sol . The contract is deployed using a proxy pattern whereby the implementation contract is used by the proxy contract for all its logic. The proxy contract will make delegate calls t...

7.3AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•15 views

Signature replay attacks possible if deployed on multiple chains

Lines of code Vulnerability details Caller.callSigned operates using an EIP-712 signature which verifies the signed data to be used in a call on behalf of the signer. The problem with this method lies in the fact that it doesn't specify the chain ID, and thus if the contract is ever deployed to...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•14 views

[M-01] emitUserMetadata function may fail due to exceed gas limit

Lines of code Vulnerability details Impact The function emitUserMetadata in DripsHub may fail due to unbounded loop over userMetadata can be very large due to the user input. However, function could be called only from drivers, it's still public and large array could be passed. And the loop in...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•16 views

Anyone can call the DripsHub.split function to frontrun the DripsHub.setSplits function call of the trusted user who owns the splittable funds

Lines of code Vulnerability details Impact As mentioned by the following DripsHub.split function's comment, the user, who owns the splittable funds, needs to be trusted by the receivers for such splittable funds. Yet, when this trusted user wants to call the DripsHub.setSplits function below to...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•8 views

Lack of nonReentrant modifier when using _safeMint function

Lines of code Vulnerability details Impact The safeMint function implementation can allow a contract to reenter the the calling contract. Proof of Concept the safeMint function can be reentered through the safeMint function. function safeMintaddress to, UserMetadata calldata userMetadata public...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•10 views

Drips that end after the current cycle but before its creation can allow users to profit from squeezing

Lines of code Vulnerability details Impact By creating a drip that ends after the current cycle but before its creation time and immediately removing it, the sender doesn't have to put in any assets but the receiver can still squeeze this drip. By setting a receiver that the sender controls, the...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•14 views

A Theoretical-Gaming Vulnerability

Lines of code Vulnerability details Impact There is a theoretical-gaming vulnerability in the project. Currently, users are able to set up a graph in which money should flow from one vertex to another. The user sets the split configuration on their account and there is a public function...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•13 views

Upgraded Q -> 2 from #854 [1675461747744]

Judge has assessed an item in Issue 854 as 2 risk. The relevant finding follows: When the protocol is paused, all the multisigs are disabled:, However, it is still possible to call startRewardsCycle in the RewardsPool, however, the execution will revert because the enabled count is 0: --- The tex...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•8 views

Locked Ether

Lines of code Vulnerability details Impact Contract with a payable function, but without a withdrawal capacity. Every Ether sent to Caller will be lost. Proof of Concept File: Caller.sol function callAsaddress sender, address to, bytes memory data public payable returns bytes memory returnData...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•10 views

UNEXPECTED DATA LOSS IS POSSIBLE DUE TO UNSAFE DOWN CASTING OF UINT40 TO UINT32

Lines of code Vulnerability details Impact In the dripsRange function of the Drips.sol contract variable end is declared as of type uint40. After the arithmetic operations and conditional checks have been performed, the end variable is returned as uint32end thus down casting it unsafely. Proof of...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•10 views

_receiveDripsResult() overcounts amtPerCycle

Lines of code Vulnerability details Impact Drips results will be accounted for wrongly and hence users will receive more drips than they should. Proof of Concept According to the whitepaper, amtDeltas stored at each cycle is the value relative to the previous cycle. The stored delta for a cycle i...

6.6AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•8 views

Upgraded Q -> 3 from #867 [1675460716325]

Judge has assessed an item in Issue 867 as 3 risk. The relevant finding follows: L-02, MinipoolManager, lines 670 - 684: The slash function slashes a node operator for the amount of whole duration. Since the cycles are in 14 days and the slashing is checked in the recordStakingEnd, if an operator...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•6 views

Upgraded Q -> 2 from #862 [1675430218943]

Judge has assessed an item in Issue 862 as 2 risk. The relevant finding follows: L-1 Function requireNextActiveMultisig always returns the first Multisig Affected code MultisigManager.requireNextActiveMultisig is supposed to return the next enabled Multisig. However it always returns the first...

7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•8 views

Upgraded Q -> 2 from #769 [1675429128999]

Judge has assessed an item in Issue 769 as 2 risk. The relevant finding follows: L-1 requireNextActiveMultisig always returns the 1st enabled Multisig Relevant code: As the name suggested, MultisigManager.requireNextActiveMultisig should return the next enabled Multisig. However, it actually alwa...

7.1AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•9 views

Upgraded Q -> 2 from #338 [1675444014859]

Judge has assessed an item in Issue 338 as 2 risk. The relevant finding follows: L-07 It should be possible to assign Minipool to a new Multisig MinipoolManager.sol 1 --- The text was updated successfully, but these errors were encountered: All reactions...

6.8AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•10 views

Upgraded Q -> 2 from #836 [1675451857205]

Judge has assessed an item in Issue 836 as 2 risk. The relevant finding follows: Underflow error when redeeming to 0 after minting some rewards --- The text was updated successfully, but these errors were encountered: All reactions...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•10 views

## Mathematical Modelling Cause a Significant Roundoff Error

Lines of code Vulnerability details Mathematical Modelling Cause a Significant Roundoff Error Function drippedAmt calculates the ended cycles. when calculating ended cycles it takes two divisions which cause round off error. Let's consider this scenario. Deposited token - WBTC amtPerSec = 1000000...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•9 views

Deletion on mapping containing a structure

Lines of code Vulnerability details Impact A deletion in a structure containing a mapping will not delete the mapping see the Solidity documentation. The remaining data may be used to compromise the contract. Proof of Concept File: Drips.sol struct AmtDelta /// @notice Amount delta applied on thi...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•11 views

Upgraded Q -> 2 from #783 [1675429188655]

Judge has assessed an item in Issue 783 as 2 risk. The relevant finding follows: restakeGGP doesn't have whenNotPaused modifier At line 319 stakeGGP has whenNotPaused modifier, while restakeGGP has not. Suggest to add the same modifier to restakeGGP. --- The text was updated successfully, but the...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•13 views

Support for fee-on-transfer tokens

Lines of code Vulnerability details Impact The AddressDriver.sol do not support fee-on-transfer tokens. If the asset is a fee-on-transfer token, tokens received from users could be less then the amount specified in the transfer. The protocol could suffer a loss of funds. Proof of Concept function...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•9 views

Upgraded Q -> 2 from #867 [1675460709593]

Judge has assessed an item in Issue 867 as 2 risk. The relevant finding follows: L-01, ProtocolDAO.sol lines 209 - 216: upgradeExistingContract mistakenly removes the address value of the new contract if the new contract’s name is the same as the old one. This can be easily fixed with unregisteri...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•14 views

Upgraded Q -> 2 from #338 [1675444008015]

Judge has assessed an item in Issue 338 as 2 risk. The relevant finding follows: L-04 Staking.restakeGGP function should have whenNotPaused modifier Staking.sol 1 --- The text was updated successfully, but these errors were encountered: All reactions...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•11 views

Upgraded Q -> 3 from #508 [1675443043181]

Judge has assessed an item in Issue 508 as 3 risk. The relevant finding follows: L-05 Duration does not have upper bound The duration input parameter does not have upper bound. If the duration is mistakenly set too high, node operator will be slashed significant amount of GGP. The...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•17 views

Code breaks if first user is not expected user

Lines of code Vulnerability details Code breaks if first user is not expected user Summary Rather than iterate and continue if user is not the expected one, this code breaks all the execution if first user is userId Vulnerability Detail Execution is broke most of the times at first iteration for ...

7.4AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•14 views

_transferFromCaller is not compatible with USDT and similar tokens

Lines of code Vulnerability details transferFromCaller is not compatible with USDT and similar tokens Summary Setting directly typeuint256.max won't work for USDTTether. This is done at both transferFromCaller: NFTDriver.solL289 AddressDriver.solL174 Description Some tokens like USDT do not work...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•22 views

Proxy admin of DripsHub, AddressDriver, NFTDriver and ImmutableSplitsDriver can steal users' tokens by upgrading the contract

Lines of code Vulnerability details Impact Proxy admin of DripsHub, AddressDriver, NFTDriver and ImmutableSplitsDriver can perform different malicious actions through upgrading, all can lead to users' assets being stolen. Proof of Concept An upgradable proxy contract can be upgraded with arbitrar...

6.9AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•17 views

Split vulnerable to preimage attack

Lines of code Vulnerability details Impact A motivated attacker could invest the resources to craft a malicious SplitsReceiver to steal all of a users' pending funds. Proof of Concept This is a non-practical implementation of the attack, but shows by extending the SplitsReceiver array by any numb...

6.7AI score
SaveExploits0
Code423n4
Code423n4
•added 2023/02/03 12:0 a.m.•6 views

BURN any ERC721 tokens in DRIFT NFT protocol by just sending the tokenID on the public burn function

Lines of code Vulnerability details Impact Access control plays an important role in segregation of privileges in smart contracts and other applications. If this is misconfigured or not properly validated on sensitive functions, it may lead to loss of funds, tokens, and in some cases, compromise ...

6.9AI score
SaveExploits0
Total number of security vulnerabilities10190