_update Hook and Approval Functions Not OverriddenFile: sources/2025-02-datingdapp/src/SoulboundProfileNFT.sol
Lines: 56–64
The contract blocks transfers via transferFrom and safeTransferFrom overrides, but does not override _update() (the OZ v5 internal hook all transfers flow through), nor approve() or setApprovalForAll(). Users can still set approvals on non-transferable tokens.
Approval state is inconsistent with soulbound intent.
Future OZ library changes routing through _update() could bypass public function overrides.
Users are misled into thinking approvals are meaningful.
Manual review, OZ v5 ERC721 architecture analysis
The contest is live. Earn rewards by submitting a finding.
Submissions are being reviewed by our AI judge. Results will be available in a few minutes.
View all submissionsThe contest is complete and the rewards are being distributed.