Submitted by MrValioBg, also found by KupiaSec
In the readme invariant docs it is specified, as requirement for approval operations, the following conditions:
Reference.
Note: to view the provided image, please see the original submission here.
However, this invariant is broken by the protocols implementation, as there is no logic to enforce that. The approve() function is not overridden and transferSanity() is not called for the operation.
To confirm we can refer to Token.sol:
https://github.com/code-423n4/2025-01-next-generation/blob/499cfa50a56126c0c3c6caa30808d79f82d31e34/contracts/Token.sol#L35
The approve() function is not overridden.
Override the approve function and check if the _msgSender() and spender are not blacklisted, before allowing the operation. This can be done with transferSanity() check, the same way it is already implemented for the other operations.
0xsomeone (judge) commented:
For this audit, 18 reports were submitted by wardens detailing low risk and non-critical issues. The report highlighted below by patitonar received the top score from the judge.
The following wardens also submitted reports: 0x23r0, Abysser, Bauchibred, Bluedragon101, DharkArtz, foufrix, ginlee, hyuunn, imkapadia, inh3l, LeoGold, magiccentaur, Maroutis, MerkleSec, PolarizedLight, rspadi, and udo.
