The development of the decentralized finance (DeFi) ecosystem and Web3 has brought revolutionary changes in the way people interact with digital assets. However, behind the convenience of automated transactions lies a complex permission structure, where the trade-off between user experience (UX) and security is creating huge vulnerabilities. Access rights in smart contracts are more than just an "approve" button; it is an asset ownership delegation mechanism that, if abused, can lead to the depletion of an entire wallet in a single transaction. According to Tan Phat Digital, this report will delve into the analysis of technical risks from infinite Token Approval, phishing attacks via off-chain signatures, centralized risks in protocol governance and propose a security roadmap based on Zero Trust thinking and role-based access management (RBAC).
Technical mechanism of Token Approval and risks from infinite authorization
Smart contracts, about Essentially, it is not possible to arbitrarily move assets from the user's wallet. To perform operations such as swapping on decentralized exchanges (DEXs) or listing NFTs, users must authorize smart contracts through a mechanism called Token Approval.
Three-step structure of the authorization mechanism
The ERC-20 and ERC-721 standards define a specific protocol for making transfers on behalf of users. This mechanism includes three main components:
Approve(spender, amount) function: Approves access rights. The technical role is to update the mapping of the balance allowed to spend on the Blockchain state.
Function allowance(owner, spender): Checks permissions. The technical role is to query the amount of tokens that a specific address is allowed to withdraw from the owner.
Function transferFrom(from, to, amount): Executes asset movement. The technical role is to withdraw tokens from the user's wallet and transfer them to the target address.
When the user calls the approve function, they are recording an immutable commitment on the blockchain that the spender address has the right to withdraw up to a certain amount of tokens from their address. The danger lies in the fact that the transferFrom function can be called by the smart contract at any time in the future without any further confirmation from the user, as long as the requested amount of tokens remains within the allowance limit.
See also: What is Revoke Approval?
The paradox of convenience: Infinite Approval Tokens
In reality, to optimize the experience and minimize gas costs, most decentralized applications (dApps) require users grants "infinite" permissions (usually the maximum value of an integer variable $2^{256} - 1$). This helps users only pay gas fees for a single approval instead of having to sign for each transaction.
However, this convenience comes with a high price in terms of security. Once unlimited approval rights are granted, it will exist permanently on the blockchain until explicitly revoked. Even if the user has disconnected the wallet from the application's website, that authority remains on-chain, allowing the smart contract to access assets at any time. If that smart contract fails or is controlled by an attacker, the entire balance of that token in the user's wallet will be drained immediately.
Storage Vulnerability and Perpetuity Analysis
The approval data is not in the user's wallet but in the storage (storage) of that token contract. This creates a cognitive blind spot: users often check the balance in the wallet but rarely check the list of entities that have the power to "unlock" that balance. According to statistics from the Revoke platform, more than 475 million USD has been stolen since 2020 due to vulnerabilities related to the abuse of approval rights. Tan Phat Digital emphasizes that this is not only a technical flaw but also a failure in the user experience (UX) design of the entire Web3 industry.
The evolution of Phishing attacks through Off-chain approval mechanism
As the community looks for ways to reduce the hassle of gas fees per approval, new standards such as EIP-2612 (Permit) and Uniswap Permit2 have emerged. While they offer cost benefits, they open up new avenues for more sophisticated phishing attacks.
Permission mechanisms and associated risks
ERC-20 Approve: Authorization via on-chain transactions. It has the advantage of being transparent and easy to track, but the disadvantage is that it costs gas for each execution and has potential risks if granting unlimited permissions.
EIP-2612 Permit: Granting permissions via off-chain signature. Helps users avoid gas costs but is vulnerable to "blind signing" Phishing attacks because signing messages are often difficult to read and difficult to detect anomalies.
Permit2: Signature based on prior approval. Provides superior flexibility and centralized management, but if tricked into signing a malicious Permit2 message, the attacker could drain all approved tokens for this contract.
EIP-7702: The "Trojan Horse" of EOA wallets
Introduced in the Pectra upgrade in May 2025, EIP-7702 allows accounts to own parties (EOA) temporarily "transforms" into a smart contract wallet. The attacker tricks the user into signing an authorization for a malicious "housekeeper" contract. Once this authorization is activated, the attacker can install automatic withdrawal logic directly into the victim's account. Data from Dune Analytics shows that through June 2025, more than 97% of EIP-7702 proxy transactions were targeting malicious contracts related to criminal activity.
Risks from Centralized Admin Rights and Privileged Functions
In addition to user risks, the authority structure within the protocols themselves is also a threat. Centralization defects occur when a design creates a single weakness that can cause the entire system to collapse.
Mint Function with Single Signature (MFS): Allows a single address to print unlimited tokens, leading to hyperinflation.
Management without Timelock (MT): Important changes can be implemented immediately leaving the community unable to react in time.
Critical Variable Manipulation (CVS): A single account with the power to change interest rates, risk parameters or data feeds (oracle).
Single Proxy Admin (SPA): An address that controls the right to upgrade the entire smart contract logic.
As reported by Chainalysis, approximately 43.8% of funds stolen from blockchain hacks originate from the exposure of private keys of privileged accounts.
See also: How dangerous is Approval scam
Technical analysis of the risk of upgrades and storage collisions (Storage Collision)
DeFi protocols often use the Proxy model to correct errors or add features ability. However, this mechanism relies on the delegatecall, which carries the risk of storage collisions. If the order of variables in the new logical contract is not correct compared to the old contract, the stored values will be overwritten. An attacker can take advantage of this to direct the proxy to a malicious logical contract, thereby draining the user's assets.
In addition, Initializer Vulnerability vulnerabilities are also very common. If the developer forgets to protect the initialize function, an attacker can call this function to identify himself as the owner and take control of the entire system.
Lessons from real attacks
Analysis of historical incidents helps Tan Phat Digital show how authorization vulnerabilities are exploited in practice:
Step Finance (January 2026): Damage about 30 million USD. The attacker infiltrated the operating team's devices, thereby gaining access to treasury wallets and making withdrawals of 261,854 SOL.
CrossCurve (February 2026): Damage of 3 million USD. The attack exploits an implementation error in the cross-chain message logic, allowing attackers to send spoofed messages to bypass authentication and make unauthorized withdrawals.
Radiant Capital (October 2024): Loss of 50 million USD. Malware infected the developers' devices, silently replacing the payload of multisig transactions to transfer contract ownership to the attacker.
Poly Network (2021): $611 million in damage. Access logic errors allow manipulation of input parameters through cross-chain calls.
Bybit (February 2025): A record theft with losses of nearly $1.5 billion in Ethereum, showing the devastating scale of authorization vulnerabilities.
Recommended Solution: Zero Trust Security Framework for Smart Contracts
In the face of the complexity of attack, adopting a Zero Trust mindset is a must:
Always authenticate continuously: Every asset access request must be authenticated at the time of execution.
Reast Access Rights (RBAC): Break down permissions into specific roles such as Minter, Pauser instead of assigning full Owner rights.
System Assumptions has been compromised: Deploy automatic circuit breakers and real-time monitoring.
Frequently Asked Questions (FAQs)
1. What is Token Approval and why do dApps need it? Token approval is an on-chain permission that you grant to a smart contract so it can access a specific amount of tokens in your wallet without requiring a signature for each individual transaction action.
2. Is granting "unlimited" permissions (Unlimited Approval) safe? Not safe. If the dApp is hacked or is a scam, the attacker can use this permission to completely drain that token from your wallet at any time.
3. If I disconnect the wallet from the website, will the granted permissions be revoked? No. Disconnecting only prevents the website from seeing your wallet address. The approval authority remains permanent on the blockchain until you perform a specific revoke transaction.
4. Can I lose all the assets in my wallet because of one approval? An approval transaction usually only applies to a specific token (for example, only WETH). An attacker can only get away with tokens that you have approved, unless you sign more complex permissions like SetApprovalForAll for NFTs.
5. How to check the list of permissions I've granted? You can use reputable tools like Revoke.cash, Etherscan Token Approval Checker or De.Fi Shield to scan all active permissions on various networks.
6. How is Permit (EIP-2612) different from traditional Approve? Approve requires an on-chain transaction that costs gas immediately. Permit uses off-chain signatures, allowing permissions to be approved without consuming gas for the user (gas fees are usually paid by the protocol when the transaction is made later).
7. What should I do if I accidentally sign an off-chain Permit/signature on a suspect site? You should immediately access your revocation tools to check if the signature has been enabled on-chain. However, destroying off-chain signatures is difficult because attackers often execute them almost immediately.
8. Why can multisig wallets (like Safe) still be hacked? Hacked multisig wallets are often caused by the owners' devices being infected with malware, allowing attackers to replace real transaction content with malicious transactions without the user's knowledge when signing (interface phishing).
9. What is timelock and why does the project need it? Timelock is a mechanism to delay the execution of administrative commands (e.g. 48-hour delay). This allows the community time to test changes and withdraw assets if profiteering from the admin is detected.
10. What is the difference between technical risk and administrative risk (centralization risk)? Technical risk comes from logic errors in code (like reentrancy). Governance risk comes from excessive concentration of authority in one individual, allowing them to change important parameters or upgrade contracts arbitrarily.
11. What is the "approve-to-zero-then-set" design pattern? This is a security process that requires users to bring the approval level to zero before setting a new approval level, to prevent race condition attacks in some older token standards.
12. What security benefits does EIP-7702 bring? EIP-7702 allows wallets to perform "session intents", grouping approvals and actions into a single transaction, thereby minimizing the possibility of unlimited permissions being suspended on the blockchain after the transaction is completed.
13. When should a project be re-audited? A project should be re-audited whenever there are major code changes, contract logic upgrades, or integrations with new third-party protocols to ensure no new vulnerabilities are introduced.
14. How to verify a smart contract is safe? It is necessary to check whether it has audit reports from reputable companies, a history of activity on the testnet, a bug bounty program, and whether the source code is publicly available on block explorers.
15. Do Cold Wallets (Hardware Wallets) protect me from phishing attacks? Cold wallets protect your private keys from being stolen by malware. However, it cannot prevent you from signing a malicious transaction if you are deceived (blind signing). You should always check the parameters on the cold wallet screen before confirming.
Tan Phat Digital recommends that end users use tools such as Revoke.cash, De.Fi Shield or Etherscan Token Approval to periodically check and revoke authorization. When signing transactions, always use the "Edit Permission" feature to limit the number of tokens instead of accepting the default limitless approval level.
Permissions in smart contracts are actually more dangerous than we imagine. The close combination of technical solutions and Zero Trust thinking is the essential foundation for building a sustainable and trustworthy Web3 ecosystem.
Share








