UniStaker Infrastructure - SAQ's results

Staking infrastructure to empower Uniswap Governance.

General Information

Platform: Code4rena

Start Date: 23/02/2024

Pot Size: $92,000 USDC

Total HM: 0

Participants: 47

Period: 10 days

Judge: 0xTheC0der

Id: 336

League: ETH

Uniswap Foundation

Findings Distribution

Researcher Performance

Rank: 41/47

Findings: 1

Award: $22.02

🌟 Selected for report: 0

🚀 Solo Findings: 0

Awards

22.023 USDC - $22.02

Labels

analysis-advanced
grade-b
A-11

External Links

Summary

noFile
[File-1]UniStaker.sol
[File-2]V3FactoryOwner.so
[File-3]DelegationSurrogate.sol
[File-4]IERC20Delegates.sol
[File-5]INotifiableRewardReceiver.sol
[File-6]IUniswapV3FactoryOwnerActions.sol
[File-7]IUniswapV3PoolOwnerActions.sol

Analysis Issue Report

[File-1] UniStaker.sol

The bellow issues related to the File ( Link )

Github-Link

<details> <summary>see instances</summary>
Admin Abuse Risks:
  • Potential Issue: The admin address is a single point of control and can set parameters and permissions.

  • Mitigation: It's crucial to ensure that the admin is a trusted entity and there are proper mechanisms for transferring admin control in case of unforeseen circumstances.

Systemic Risks:
  • Potential Issue: The contract uses a global nextDepositId for generating deposit identifiers.
  • Mitigation: Ensure that the deposit identifier generation logic is secure to prevent collisions or predictability.
Technical Risks:
  • Potential Issue: The contract uses external contracts (DelegationSurrogate, INotifiableRewardReceiver, IERC20Delegates, etc.), and if these are not well-audited or have vulnerabilities, they might pose risks.

  • Mitigation: Review and verify the security of all imported external contracts and interfaces.

Integration Risks:
  • Potential Issue: The contract relies on external ERC-20 token contracts (REWARD_TOKEN and STAKE_TOKEN).

  • Mitigation: Ensure that the interaction with these external contracts adheres to best practices and is secure. Verify the security and reliability of these external contracts.

Non-Standard Token Risks:
  • Potential Issue: The contract uses the IERC20Delegates interface, which might have unique functionalities or risks associated with it.

  • Mitigation: Review the IERC20Delegates contract interface and its implementations for any potential risks and ensure proper understanding of the delegated token functionality.

Additional Notes:
  • The contract uses SafeERC20 for token transfers, which is a good practice.
  • Signature verification is used in some functions (_revertIfSignatureIsNotValidNow). Ensure that this mechanism is secure and well-implemented.
  • The contract implements EIP-712 for typed structured data hashing, providing a standardized way for off-chain parties to sign messages.
</details>

[File-2] V3FactoryOwner.sol

The bellow issues related to the File ( Link )

Github-Link

<details> <summary>see instances</summary>
Admin Abuse Risks:
  • Description: Admin abuse risks refer to the potential misuse or abuse of administrative privileges by the contract admin.

  • Evaluation:

    • The contract has an admin address that can perform privileged functions such as changing the admin itself, updating the payout amount, enabling fee amounts on the factory, and setting protocol fees on individual pools.
    • There is a modifier _revertIfNotAdmin() that ensures certain functions can only be called by the admin.
  • Conclusion: The contract has a mechanism to control admin privileges, reducing the risk of admin abuse. However, the overall security depends on how well the admin address is managed and whether it aligns with the intended use case.

Systemic Risks:
  • Description: Systemic risks involve vulnerabilities in the overall system architecture and interactions with other contracts.

  • Evaluation:

    • The contract interacts with the Uniswap v3 factory and pools through external interfaces (e.g., IUniswapV3FactoryOwnerActions and IUniswapV3PoolOwnerActions).
    • The payout token and reward receiver contracts are external dependencies that should be carefully audited for security.
  • Conclusion: The contract seems to rely on external components like Uniswap v3 contracts, payout token, and reward receiver. Systemic risks are present, and the security of the entire system depends on the security of these external dependencies.

Technical Risks:
  • Description: Technical risks involve vulnerabilities within the smart contract code itself.

  • Evaluation:

    • The code utilizes SafeERC20 for safe token transfers, reducing the risk of token-related vulnerabilities.
    • Events are emitted to provide transparency and allow for external monitoring.
  • Conclusion: The contract employs some best practices, but a comprehensive audit is required to ensure there are no technical vulnerabilities or issues in the implementation.

Integration Risks:
  • Description: Integration risks involve potential issues arising from the integration with other contracts or systems.

  • Evaluation:

    • The contract integrates with external Uniswap v3 contracts, relying on their correct behavior.
    • The reward receiver contract is an external integration that should be reviewed for potential risks.
  • Conclusion: Integration risks are present due to dependencies on external contracts. Ensuring the reliability and security of these integrations is crucial.

Non-Standard Token Risks:
  • Description: Non-standard token risks involve issues related to the use of non-standard or custom tokens.

  • Evaluation:

    • The contract interacts with ERC-20 tokens, and the payout token is expected to follow the ERC-20 standard.
  • Conclusion: The contract appears to use standard ERC-20 tokens, reducing the risk associated with non-standard tokens.

Overall:

A thorough security audit, especially focusing on external dependencies and potential edge cases, is recommended to ensure the robustness of the smart contract.

</details>

[File-3] DelegationSurrogate.sol

The bellow issues related to the File ( Link )

Github-Link

<details> <summary>see instances</summary>
Admin Abuse Risks:
  • Potential Issue: The contract lacks an explicit admin role or a way to transfer control. The deployer of the contract has full control over setting the delegatee and managing token approvals.

  • Mitigation: Consider implementing an admin role with proper access control mechanisms. Additionally, providing a mechanism to transfer admin control may enhance the contract's flexibility.

Systemic Risks:
  • Potential Issue: The contract's functionality is highly dependent on an external contract (IERC20Delegates) for delegation and approvals. Any vulnerabilities or changes in the external contract can impact this contract.

  • Mitigation: Ensure that the external contract (IERC20Delegates) is well-audited and adheres to security standards. Consider making the external contract address configurable to accommodate potential upgrades or changes.

Technical Risks:
  • Potential Issue: The contract uses the approve function with an unlimited allowance (type(uint256).max). Unlimited approvals can pose a security risk if the deployer's address is compromised.

  • Mitigation: Consider implementing a more granular approval mechanism, such as allowing users to approve a specific amount or implementing a withdrawal pattern to minimize potential risks.

Integration Risks:
  • Potential Issue: The contract relies on the external contract IERC20Delegates for delegation. If there are issues with the external contract's functionality or if it is malicious, it could impact the delegation process.

  • Mitigation: Thoroughly audit the external contract (IERC20Delegates) and ensure that it meets the required security standards. Implement checks and error handling for potential issues with external contract interactions.

Non-Standard Token Risks:
  • Potential Issue: The contract assumes the use of a governance token (IERC20Delegates). Risks associated with this token depend on its implementation.

  • Mitigation: Ensure that the governance token used adheres to established standards and undergoes thorough security audits. Consider making the governance token address configurable to allow for flexibility with different tokens.

Overall:

The contract has a straightforward purpose but has potential risks related to admin control, external contract dependency, and token approval mechanisms. Enhancements and careful consideration of security measures can help mitigate these risks. Thorough testing and audits are crucial before deploying such a contract.

</details>

[File-4] IERC20Delegates.sol

The bellow issues related to the File ( Link )

Github-Link

<details> <summary>see instances</summary>
Admin Abuse Risks:
  • Potential Issue: The interface IERC20Delegates does not include methods for modifying the admin or owner roles. If the implementation contract has such roles and lacks proper access control, admin abuse risks may arise.

  • Mitigation: Ensure that the implementation contract (if any) properly handles admin-related functionalities with appropriate access controls. If needed, additional methods for modifying admin roles can be added to the interface.

Systemic Risks:
  • Potential Issue: The interface is dependent on an external implementation contract to provide the actual functionality. Risks associated with the ERC20 and ERC20Votes standards are inherited from the implementation contract.

  • Mitigation: Thoroughly audit and review the external implementation contract to ensure it adheres to the ERC20 and ERC20Votes standards. Additionally, consider making the external contract address configurable for potential upgrades or changes.

Technical Risks:
  • Potential Issue: The permit function, which allows for meta-transactions, introduces a potential attack vector if not implemented securely. If the permit implementation is flawed, it might lead to unauthorized transactions.

  • Mitigation: Ensure that the permit function is implemented securely, following standards such as EIP-712. Conduct rigorous testing and consider external audits to verify the correctness and security of the permit implementation.

Integration Risks:
  • Potential Issue: The interface is designed to integrate with ERC20 and ERC20Votes standards. If there are issues or deviations from these standards in the external contract, it may impact interoperability and integration.

  • Mitigation: Ensure that the external contract adheres strictly to the ERC20 and ERC20Votes standards. Conduct thorough testing and consider integration tests to verify proper functionality and compatibility.

Non-Standard Token Risks:
  • Potential Issue: The interface assumes the usage of a governance token that conforms to the ERC20Votes standard. Risks related to the governance token depend on its specific implementation.

  • Mitigation: Verify that the governance token used adheres to the ERC20Votes standard and undergoes thorough security audits. Consider making the governance token address configurable to allow flexibility with different tokens.

Overall:

The provided interface focuses on ERC20 and ERC20Votes functionalities and is relatively standard. Risks associated with this interface depend on the implementation contract that uses it, especially regarding admin controls and the permit function's secure implementation. Thorough testing and audits are crucial before deploying any contract that implements this interface.

</details>

[File-5] INotifiableRewardReceiver.sol

The bellow issues related to the File ( Link )

Github-Link

<details> <summary>see instances</summary>
Admin Abuse Risks:
  • Potential Issue: The interface INotifiableRewardReceiver lacks explicit admin-related methods, making it less prone to admin abuse risks. However, if the contract implementing this interface includes admin controls, those need to be carefully managed to prevent abuse.

  • Mitigation: If the contract implementing this interface has admin roles or controls, ensure they are properly implemented with appropriate access restrictions and undergo thorough testing. Additionally, consider external audits for security.

Systemic Risks:
  • Potential Issue: Being an interface, INotifiableRewardReceiver inherits systemic risks from the contracts that implement it. Risks associated with the actual reward distribution mechanics and logic reside in the contracts using this interface.

  • Mitigation: Perform a comprehensive audit of contracts implementing this interface, especially focusing on the reward distribution mechanisms. Ensure that the contracts adhere to best practices and security standards

Technical Risks:
  • Potential Issue: The notifyRewardAmount method, being the core functionality of this interface, might pose technical risks if implemented incorrectly. Incorrect handling of reward amounts or state changes could lead to undesired behavior.

  • Mitigation: Review the implementation of the notifyRewardAmount method in contracts using this interface. Verify that it handles reward amounts securely, updates the contract's state appropriately, and does not introduce vulnerabilities. Comprehensive testing is crucial.

Integration Risks:
  • Potential Issue: Integration risks arise when contracts using this interface interact with other contracts in the system. Compatibility issues or unexpected behaviors might occur during integration.

  • Mitigation: Ensure that contracts using this interface are well-integrated into the broader system. Conduct integration testing to identify and address any compatibility issues with other contracts.

Non-Standard Token Risks:
  • Potential Issue: The interface does not explicitly specify the token standard used for rewards. If the reward mechanism involves non-standard tokens, there might be risks associated with their implementation.

  • Mitigation: Clarify and document the token standards and mechanisms used for rewards in the contracts that implement this interface. If non-standard tokens are involved, perform additional due diligence, audits, and testing.

Overall:

INotifiableRewardReceiver is a simple interface that primarily focuses on notifying reward receivers about the receipt of rewards. The actual risks associated with this interface depend on the implementation details of the contracts that use it.

</details>

[File-6] IUniswapV3FactoryOwnerActions.sol

The bellow issues related to the File ( Link )

Github-Link

<details> <summary>see instances</summary>
Admin Abuse Risks:
  • Potential Issue: The IUniswapV3FactoryOwnerActions interface includes methods related to ownership changes (setOwner). If not implemented or managed properly, there's a risk of admin abuse through unauthorized ownership changes.

  • Mitigation: Implement access controls for admin-related functions, ensuring that only authorized addresses can change ownership. Additionally, consider implementing a multisig or timelock mechanism for critical ownership changes to prevent instant abuse.

Systemic Risks:
  • Potential Issue: Systemic risks in the Uniswap V3 Factory might arise if the ownership mechanism is not secure or if fees are not managed correctly. Any issues with the internal logic of the factory can have widespread consequences.

  • Mitigation: Conduct thorough testing and audits of the entire Uniswap V3 Factory, focusing on the ownership management and fee-related functions. Ensure that the systemic components are secure and adhere to best practices.

Technical Risks:
  • Potential Issue: Technical risks could arise if the enableFeeAmount or setOwner functions are not implemented correctly or if there are vulnerabilities in the fee management logic.

  • Mitigation: Carefully review the implementation of enableFeeAmount and setOwner, ensuring proper validation and handling of inputs. Conduct extensive testing, including edge cases, to identify and address potential technical risks.

Integration Risks:
  • Potential Issue: Integration risks may arise if other contracts or systems depend on the Uniswap V3 Factory, especially if changes to ownership or fee structures impact external integrations.

  • Mitigation: Clearly document the expected behavior of the Uniswap V3 Factory and communicate any changes to external integrators. Encourage integration testing and maintain open communication channels with projects relying on the factory.

Non-Standard Token Risks:
  • Potential Issue: The interface does not appear to involve non-standard tokens directly. However, if the Uniswap V3 Factory deals with tokens beyond the standard ERC-20, potential risks might emerge.

  • Mitigation: Ensure that token interactions within the Uniswap V3 Factory comply with relevant standards. If non-standard tokens are involved, conduct additional audits and due diligence to address potential risks.

Overall:

The IUniswapV3FactoryOwnerActions interface seems focused on ownership and fee management within the Uniswap V3 Factory. Admin abuse risks are notable, and careful implementation and testing are crucial to mitigate potential issues.

</details>

[File-7] IUniswapV3PoolOwnerActions.sol

The bellow issues related to the File ( Link )

Github-Link

<details> <summary>see instances</summary>
Admin Abuse Risks:
  • Potential Issue: The IUniswapV3PoolOwnerActions interface includes methods like setFeeProtocol, which may modify protocol fees. Admin abuse could occur if unauthorized parties gain access to these functions.

  • Mitigation: Implement proper access controls to ensure that only authorized addresses, especially the factory owner, can call these methods. Consider adding a multisig or timelock mechanism for critical operations.

Systemic Risks:
  • Potential Issue: Systemic risks may arise if the setFeeProtocol function is not implemented securely, potentially impacting the overall fee structure of Uniswap V3 pools.

  • Mitigation: Conduct thorough testing and audits of the setFeeProtocol function, ensuring that the changes to the fee structure are accurate and adhere to protocol specifications.

Technical Risks:
  • Potential Issue: Technical risks could emerge if the implementation of collectProtocol is flawed or if there are vulnerabilities in handling the requested amounts of tokens during fee collection.

  • Mitigation: Carefully review the implementation of collectProtocol, especially the logic related to handling amounts of token0 and token1. Conduct comprehensive testing, including edge cases, to identify and address potential technical risks.

Integration Risks:
  • Potential Issue: Integration risks may occur if other contracts or systems depend on the Uniswap V3 pools and are sensitive to changes in protocol fees.

  • Mitigation: Clearly document the expected behavior of the Uniswap V3 pools and communicate any changes in protocol fees to external integrators. Encourage integration testing to identify and resolve potential issues.

Non-Standard Token Risks:
  • Potential Issue: The interface does not appear to involve non-standard tokens directly. However, if Uniswap V3 pools deal with non-standard tokens, additional risks might emerge.

  • Mitigation: Ensure that token interactions within the Uniswap V3 pools comply with relevant standards. If non-standard tokens are involved, conduct additional audits and due diligence to address potential risks.

Overall:

the IUniswapV3PoolOwnerActions interface focuses on actions that may only be performed by the factory owner, particularly related to setting protocol fees and collecting fees from Uniswap V3 pools. Admin abuse and proper implementation of fee-related functions are key areas to consider for security.

</details>

Time spent:

07 hours

#0 - c4-judge

2024-03-14T18:19:44Z

MarioPoneder marked the issue as grade-b

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