-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
QA Report #4
Comments
"Does not validate the input fee parameter" (Disputed)
require(
address(_nestedAsset) != address(0) &&
address(_nestedRecords) != address(0) &&
address(_reserve) != address(0) &&
address(_feeSplitter) != address(0) && // Checked
address(_weth) != address(0) &&
_operatorResolver != address(0),
"NF: INVALID_ADDRESS"
require(address(_feeSplitter) != address(0), "NF: INVALID_FEE_SPLITTER_ADDRESS"); "Solidity compiler versions mismatch" (Disputed)All the files in the scope (excluding "Init function calls an owner function" (Disputed)The FeeSplitter is not deployed by a smart contract. "Not verified owner" (6 Disputed/ 1 Confirmed)
require(newOwner != address(0), "Ownable: new owner is the zero address");
"Two Steps Verification before Transferring Ownership" (Disputed)Already surfaced in the first audit : code-423n4/2021-11-nested-findings#101 "Missing non reentrancy modifier" (Disputed)No reentrancy on owner functions... "Never used parameters" (Disputed)
"Missing commenting" (Disputed)Not explaining why the comments are needed. Can be well explained in "Anyone can withdraw others" (Disputed)No. "Not verified input" (Disputed)
|
In conclusion, only confirmed for : "OwnableProxyDelegation.sol.initialize ownerAddr => (Confirmed)" |
My personal judgements:
|
Now, here is the methodology I used for calculating a score for each QA report. I first assigned each submission to be either non-critical (1 point), very-low-critical (5 points) or low-critical (10 points), depending on how severe/useful the issue is. The score of a QA report is the sum of these points, divided by the maximum number of points achieved by a QA report. This maximum number was 26 points, achieved by #66. The number of points achieved by this report is 5 points. |
Title: Does not validate the input fee parameter
Severity: Low Risk
Some fee parameters of functions are not checked for invalid values. Validate the parameters:
Title: Solidity compiler versions mismatch
Severity: Low Risk
The project is compiled with different versions of solidity, which is not recommended due ti
undefined behaviors as a result of it.
Title: Init function calls an owner function
Severity: Low Risk
Title: Not verified owner
Severity: Low Risk
Title: Two Steps Verification before Transferring Ownership
Severity: Low Risk
The following contracts have a function that allows them an admin to change it to a different address. If the admin accidentally uses an invalid address for which they do not have the private key, then the system gets locked.
It is important to have two steps admin change where the first is announcing a pending new admin and the new address should then claim its ownership.
A similar issue was reported in a previous contest and was assigned a severity of medium: code-423n4/2021-06-realitycards-findings#105
Title: Missing non reentrancy modifier
Severity: Low Risk
The following functions are missing reentrancy modifier although some other pulbic/external functions does use reentrancy modifer.
Even though I did not find a way to exploit it, it seems like those functions should have the nonReentrant modifier as the other functions have it as well..
Title: In the following public update functions no value is returned
Severity: Low Risk
In the following functions no value is returned, due to which by default value of return will be 0.
We assumed that after the update you return the latest new value.
(similar issue here: code-423n4/2021-10-badgerdao-findings#85).
Title: Never used parameters
Severity: Low Risk
Those are functions and parameters pairs that the function doesn't use the parameter. In case those functions are external/public this is even worst since the user is required to put value that never used and can misslead him and waste its time.
Title: Missing commenting
Severity: Low Risk
Title: Anyone can withdraw others
Severity: Low Risk
Anyone can withdraw users shares. Although we think that they are sent to the right address, it is still
1) not the desired behavior
2) can be dangerous if the receiver is a smart contract
3) the receiver may not know someone withdraw him
Title: Not verified input
Severity: Low Risk
external / public functions parameters should be validated to make sure the address is not 0.
Otherwise if not given the right input it can mistakenly lead to loss of user funds.
The text was updated successfully, but these errors were encountered: