Because the _initialized variable is set to true in the constructor of the FollowNFT contract in FollowNFT.sol, any call to function initialize(uint256 profileId) will revert, even though it should be successfully called once.
Tools Used
Manual review
Recommended Mitigation Steps
A simple solution would be to remove the "_initialized = true;" line from the constructor of the contract.
Lines of code
https://github.com/code-423n4/2023-07-lens/blob/main/contracts/FollowNFT.sol#L43-L56
Vulnerability details
Impact
Because the _initialized variable is set to true in the constructor of the FollowNFT contract in FollowNFT.sol, any call to function initialize(uint256 profileId) will revert, even though it should be successfully called once.
Tools Used
Manual review
Recommended Mitigation Steps
A simple solution would be to remove the "_initialized = true;" line from the constructor of the contract.
Assessed type
DoS