Submitted by Haipls, also found by kutugu and twcctop
According to the standard, the tokenURI method must be reverted if a non-existent tokenId is passed. In the Vault721 contract, this point was ignored. What leads to a violation of the EIP721 spec.
https://github.com/open-dollar/od-contracts/blob/v1.5.5-audit/src/contracts/proxies/Vault721.sol#L140-L142
The responsibility for checking whether a token exists may be put on the nftRenderer depending on the implementation, and may also be missing, changed or added in the future. But the underlying Vault721 contract that is supposed to comply with the standard does not follow the specification.
Similar problem with violation of ERC721 specification: https://github.com/code-423n4/2023-04-caviar-findings/issues/44
https://eips.ethereum.org/EIPS/eip-721#specification
Add a token existence check at the Vault721 level, example:
MiloTruck (Judge) commented:
pi0neerpat (OpenDollar) commented:
