Why Can a Permit Signature Grant Token Access Without Approve?
A permit signature can authorize a contract to spend tokens without a separate on-chain approve transaction. The user signs structured data, and a relayer later submits it to the token contract, which sets an allowance. This saves a step and gas, but a malicious signature can grant a large limit to an attacker even when the wallet prompt looks like a free login or account check.
A permit signature can authorize a contract to spend tokens without a separate on-chain approve transaction. The user signs structured data, and a relayer later submits it to the token contract, which sets an allowance. This saves a step and gas, but a malicious signature can grant a large limit to an attacker even when the wallet prompt looks like a free login or account check.
How does permit set an allowance?
ERC-2612 adds permit(owner, spender, value, deadline, signature). The token contract checks the EIP-712 signature, deadline, and nonce, then writes the allowance and emits an Approval event. A relayer can pay submission gas, so the token owner need not see a separate approve transaction when signing.
Why do attackers use signatures?
A phishing site may describe the request as login, verification, or claim while embedding an attacker-controlled spender and large limit. After collecting the signature, the attacker submits permit and calls transferFrom. If the wallet abbreviates or poorly explains fields, a user may grant authority without sending a coin and mistakenly assume the action is harmless.
What should be checked in the wallet prompt?
The prompt should expose the signing domain, chain, token contract, spender, value, deadline, and purpose. Unlimited value and long validity require an especially clear explanation. Open dApps from saved URLs, verify the contract in an independent explorer, and reject blind signing. A limited allowance is preferable for occasional use.
What are the limits and risks?
Not every token implements ERC-2612 identically, while Permit2 and custom schemes use different fields. A nonce does not stop the first execution of a malicious signature. Revocation only helps before funds move and itself requires an on-chain transaction. A hardware wallet protects the key but cannot correct the owner's approval of dangerous data.
What are the key takeaways?
- Permit changes allowance by signature instead of a normal owner approve call.
- A relayer can submit a valid signature later.
- Spender, value, deadline, chain, and contract should be visible before signing.
- A nonce prevents reuse of the same permit.
- Revoking allowance after an error cannot recover tokens already transferred.
Sources
- ERC-2612
- Permit signature
- Allowance safety
This article is for information only and is not individual investment advice. Trading crypto carries the risk of losing your funds; results on historical data do not guarantee future results.
Check the strategy against your own data
ACARO is a terminal that executes a strategy on your own exchange account. Parameter search and backtesting on history are part of the subscription.
See pricing