sherlock-audit / 2024-04-teller-finance-judging

10 stars 9 forks source link

Shadowing State vulnerability #299

Closed sherlock-admin2 closed 4 months ago

sherlock-admin2 commented 5 months ago

Shadowing State vulnerability

Low/Info issue submitted by Enc3yptedDegen

Summary

This report details the analysis of a Solidity smart contract, specifically focusing on the issue of variable shadowing within the _generateTokenNameAndSymbol function.

Vulnerability Detail

The vulnerability identified is variable shadowing, which occurs when a local variable in a function has the same name as a state variable. In the _generateTokenNameAndSymbol function, the parameters principalToken and collateralToken shadow the state variables of the same names. This can lead to confusion and potential bugs, as it might not be clear whether the function is operating on the state variables or the function parameters.

Impact

The impact of this issue is primarily related to code clarity and maintainability. While the code might compile and run without errors, the potential for confusion and bugs increases, especially in larger or more complex contracts. This can lead to unintended behavior, making it harder to debug and maintain the code. Additionally, it might introduce security vulnerabilities if not addressed, as it could lead to unintended access or modification of state variables.

Code Snippet

https://github.com/sherlock-audit/2024-04-teller-finance/blob/main/teller-protocol-v2-audit-2024/packages/contracts/contracts/LenderCommitmentForwarder/extensions/LenderCommitmentGroup/LenderCommitmentGroup_Smart.sol#L241

Tool used

Manual Review

Recommendation

To mitigate the risk associated with variable shadowing, it is recommended to rename the function parameters to avoid naming conflicts with state variables. A common practice is to prefix function parameters with an underscore (_) to differentiate them from state variables. This change not only resolves the shadowing issue but also improves code readability and maintainability.

Here's the recommended modification to the function:

Screenshot_2024-04-26_12-56-41