# Assets in a Safe can be lost

reNFT Guard only blocks transfer/approve selectors, so a renter can call burn on a rented ERC721 held in the Safe, destroying the asset.

- Payout: Contest reward
- Severity: medium
- Program: reNFT
- Credited: LokiThe5th
- Disclosed: 2024-03-20
- Write-up quality: 6/10
- Original: https://github.com/code-423n4/2024-01-renft-findings/issues/323
- Library page: https://bugbountylibrary.com/r/c4%3A2024-01-renft%3AM-08
- Tags: domain:web3 impact:funds-loss kind:contest platform:code4rena sev:medium tech:evm tech:solidity technique:source-review vuln:access-control vuln:business-logic

**Target:** Gnosis Safe Guard policy contract (Guard.sol) for ERC721/ERC1155 rentals
**Root cause:** _checkTransaction only denylists transfer/approve/module selectors and does not account for extra non-standard-but-honest functions like burn/burnFrom/permit that ERC721 implementations commonly add.
**Steps:**
1. Rent an ERC721 that implements ERC721Burnable and is held in a Safe protected by Guard.sol
2. As renter, submit a Safe transaction calling `burn(69)` (selector `0x42966c68`) on the token contract
3. Guard._checkTransaction sees selector not in denylist and allows execution
4. Token is burned; Safe loses the asset
**How found:** Code review of Guard.sol's imported selector list and _checkTransaction; noticed only transfer/approve/module selectors are checked, then observed popular ERC721 collections (Pudgy Penguins, Lil Pudgys, Oh Ottie) expose burn, and wrote a Foundry test asserting the burn selector does not revert.
**Exploitation:** A malicious renter of a burnable ERC721 executes a burn call through the Safe; the Guard's selector denylist does not include burn, so the transaction passes and the NFT is destroyed, causing loss to the lender/Safe.
**Insight:** When auditing selector-based allow/deny guards, enumerate every state-changing function a real token implementation may expose (burn, burnFrom, permit, ERC721Burnable/ERC721Permit extensions) rather than only the ERC spec's transfer surface; check top-volume collections for extra functions.
