Tadle

Tadle
DeFi
30,000 USDC
View results
Submission Details
Severity: low
Valid

Lack of Access Control in `approve` Function Allows Unauthorized Token Manager Approval

Summary - The approve function in the provided smart contract code lacks proper access control, allowing any user to authorize a token manager to spend tokens on behalf of the CapitalPool contract. This vulnerability could enable malicious actors to control the tokens without permission, leading to potential loss of funds.

Vulnerability Details - The approve function does not have any access control checks, such as requiring a specific role or ownership verification, to restrict who can call the function. As a result, any user can invoke this function and approve a token manager to spend an unlimited amount of tokens on behalf of the CapitalPool contract. This could be exploited by an attacker to drain tokens from the contract.

Impact - If exploited, this vulnerability could result in unauthorized token transfers, potentially leading to the complete depletion of the CapitalPool contract's token balance. This would have severe financial implications, including losing user funds and trust in the contract.

Tools Used - Manual Code Review

Recommendations - Implement Access Control: Introduce a modifier, such as onlyOwner or onlyTokenManager, to restrict the execution of the approve function to authorized roles only.

Updates

Lead Judging Commences

0xnevi Lead Judge 9 months ago
Submission Judgement Published
Validated
Assigned finding tags:

finding-CapitalPool-approve-missing-access-control

This is at most low severity, even though giving max approvals shouldn't be permisionless, the respective tokenManager address is retrieved from the TadleFactory contract whereby the trusted guardian role is responsible for deploying such contracts as seen [here](https://github.com/Cyfrin/2024-08-tadle/blob/04fd8634701697184a3f3a5558b41c109866e5f8/src/factory/TadleFactory.sol#L68). Since the user still has to go through the PreMarkets/DeliveryPlace contracts to perform market actions, this max approval cannot be exploited.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.