MetaMask Snaps Phishing: Fake Permissions and Signature Theft
MetaMask Snaps phishing is an emerging threat where attackers create malicious Snap modules that request excessive or misleading permissions, ultimately enabling signature theft and asset drain. Unlike traditional phishing that tricks users into entering seed phrases, Snap-based phishing exploits the trust users place in the MetaMask ecosystem and the legal nature of signed messages.
In this guide, we dissect how fake Snap permissions work, the role of wallet drainers, and concrete steps to detect and avoid scams. You will learn to recognize dangerous permission requests like snap_getBip44Entropy and snap_manageState, and how to verify a Snap before installation. Real-world examples—including fake token approval Snaps and impersonator Snap stores—illustrate the attack vectors. By the end, you will be equipped to navigate Snaps without losing funds.
- Malicious Snaps abuse signing and transaction requests to trick users into approving transfers that drain assets.
- Always verify a Snap’s source code and permissions before installation; trust only the official MetaMask Snap directory.
- Signature theft via Snaps is more dangerous than traditional phishing because it bypasses per-transaction consent.
- If a Snap requests snap_getBip44Entropy, assume your private key is compromised and move funds immediately.
- Use a separate test wallet for any Snap experimentation with low risk tolerance.
- Revoke all token approvals and change seed phrase if you suspect a malicious Snap accessed your key material.
What Is MetaMask Snaps Phishing?
MetaMask Snaps are third-party modules that extend the wallet’s functionality, allowing custom transactions, integrations with non-EVM chains, or advanced key management. However, Snap phishing refers to the practice of distributing malicious Snaps that request deceptive permissions to steal cryptocurrency. Attackers create Snaps that impersonate popular tools (e.g., a “Uniswap swap helper” or “Ethereum Name Service resolver”) and convince victims to install them via social engineering.
Once installed, a malicious Snap abuses the permissions it was granted. Crucially, Snaps run in a locked-down sandbox: the ethereum provider a Snap can access (via endowment:ethereum-provider) is read-only, so a Snap cannot itself call eth_sign or eth_sendTransaction on the user's existing accounts. The real danger comes from key-derivation permissions (snap_getBip44Entropy, snap_getBip32Entropy), persistent storage (snap_manageState), network access (endowment:network-access), and — most powerfully — account-management (Keyring API) Snaps, which create Snap-controlled accounts that MetaMask then routes signing requests to. The key difference from traditional phishing is that the fraudulent activity occurs within the legitimate MetaMask interface, increasing the illusion of safety.
Phishing campaigns frequently employ fake airdrop announcements, “gas optimization” tools, or cross-chain bridge helpers to lure victims. The primary goal is to obtain a permission that allows the attacker to sign arbitrary messages on the user’s behalf, ultimately stealing tokens or NFTs.
How Fake Snap Permissions Lead to Signature Theft
Snap permissions follow an explicit model: each capability must be granted during installation, and MetaMask deliberately withholds the wallet's account-signing methods (eth_sign, personal_sign, eth_sendTransaction) from Snaps. The genuinely dangerous permissions are the key-derivation endowments — snap_getBip44Entropy and snap_getBip32Entropy — which let a Snap derive private keys from the user's seed, and the account-management (Keyring API) permissions, which let a Snap register accounts whose signing it fully controls.
A malicious account-management Snap can register Snap-controlled accounts and then, when the user transacts from one of them, alter or silently approve what actually gets signed—relying on the user to trust a confirmation whose real effect is obscured. A Snap granted key-derivation entropy can instead reconstruct private keys directly and exfiltrate them through network access.
Combined with snap_manageState for persistence and endowment:network-access for exfiltration, a rogue Snap can harvest key material or use a Snap-provided UI to nudge users toward approving malicious transactions in their normal wallet flow, then quietly ship the results to an attacker-controlled server. A common lure is a fake “Permit2 optimiser” Snap whose interface pushes the user to sign an approval that grants infinite token spending.
“Always question why a Snap needs to sign transactions or manage state. Legitimate Snaps usually only need network access or key exchange, not signing rights.” — MetaMask security team recommendation
Real-World Examples of Snap Scams
- Fake Token Approval Snap (2024): A Snap named “Token Approval Manager” claimed to revoke unnecessary approvals. It shipped as an account-management Snap; once trusted, its UI prompted approvals granting infinite spending to suspicious addresses on Polygon and Arbitrum.
- Gas Optimiser Snap Scam: Posing as a tool to reduce gas fees on L2s, this Snap used its custom UI to push the user into signing orders on a malicious DEX under the guise of “verifying the wallet for priority access,” emptying the victim’s wallet.
- Impersonator Snap Stores: Attackers host fake Snap directories on social media or forums, often mimicking the official MetaMask Snap directory. These distribute malicious Snap bundles (e.g., “Merkle verifier” for a fake airdrop) with signature permissions baked in.
- Cross-chain Bridge Sweep: In late 2024, a Snap called “Linea Bridge Pro” was promoted via Twitter/X. It requested
snap_getBip44Entropy_60— essentially asking for the private key entropy. Users who installed it lost all assets on multiple chains.
The Role of Wallet Drainers in MetaMask Snaps Attacks
Wallet drainers—automated scripts that empty a victim’s wallet—have become a staple of crypto phishing. When a malicious Snap obtains permission to sign transactions, it effectively acts as a drainer. Unlike conventional drainers that require the user to sign a separate transaction on a phishing site, a Snap-based drainer operates inside MetaMask itself.
Famous drainer frameworks like Inferno Drainer and Pink Drainer have reportedly been adapted to work through malicious account-management Snaps, which can move assets from the Snap-controlled accounts they manage without a fresh per-transaction prompt. For example, after a victim installed a fake “NFT royalty checker” Snap that registered itself as an account manager, the Snap steered a pre-crafted approval for an attacker-controlled contract into the victim’s signing flow. The transaction appeared under the user’s name in MetaMask history, often with no clear sign of foul play.
The danger is amplified by the fact that Snaps run in a sandboxed iframe, making it harder for the user to detect outgoing transactions in real time. Some drainers even delete themselves after execution to avoid detection. As a result, Snap-based drainers have a higher success rate than traditional phishing sites.
How Attackers Distribute Malicious Snaps
- Social media and Discord: Attackers pose as helpful community members offering “gas fee reduction Snap” or “multi-chain balance viewer.” They share a link to a Snap manifest file, often hosted on IPFS or a misleading GitHub repository.
- Phishing sites with fake installers: A site mimicking the official Snap directory uses a MetaMask popup prompt to install a malicious Snap. The prompt looks legitimate but the Snap’s origin URL is different.
- Airdrop lures: Users are told to install a Snap to claim a fake airdrop. The Snap requests permission to sign a message that appears as “claiming a token,” but actually approves a token spend or transfers NFTs.
- Fake developer tools: Attackers create Snaps that pretend to help with debugging (e.g., “Transaction decoder Snap”) but include hidden permissions. These are promoted on developer forums and even GitHub.
- Malicious forks of legitimate Snaps: The attacker forks a trusted Snap (like the
@consensys/linea-attestationSnap), adds account-management or key-derivation permissions, and redistributes it under a similar name.
Critical Snap Permissions to Watch Out For
| Permission | What It Allows | Risk Level |
|---|---|---|
| Account-management (Keyring API) Snap | Registers Snap-controlled accounts and handles their signing; a rogue one can drain those accounts | Critical |
endowment:ethereum-provider | Read-only access to a MetaMask node (cannot sign or send, but can read state and fingerprint the wallet) | Low-Medium |
snap_manageState | Store and retrieve persistent data (can cache stolen signatures) | High |
snap_getBip44Entropy_* | Derive private keys from a given BIP-44 path (key compromise) | Critical |
endowment:network-access | Make HTTP requests (can exfiltrate data) | Medium |
endowment:transaction-insight | See transaction data (can monitor victims) | Low-Medium |
If a Snap requests key-derivation entropy (snap_getBip44Entropy / snap_getBip32Entropy) or asks to register and manage accounts, treat it as a major red flag. Legitimate Snaps rarely need such capabilities; they usually rely on reading wallet state or providing UI elements. Always check the permissions list in MetaMask’s Snap management screen.
How to Verify a Snap Before Installing
- Check the source code: If the Snap is open source, review its JSON manifest and JavaScript bundle for suspicious permissions. Tools like
snap-permission-checker(community-made) can help audit. - Use the official Snap directory: Only install Snaps listed at
snaps.metamask.io. Scammers have created fake directories, so always verify the URL. - Read community reviews: Check Twitter, Reddit, and Discord for discussions on the Snap. If little information exists, be suspicious.
- Review permissions on the install screen: MetaMask shows all requested permissions before installation. Reject any Snap that asks for
snap_getBip44Entropyor account-management permissions unless you fully understand and trust the developer. - Use a test wallet: Before installing any Snap on your main wallet, test it with a separate wallet containing minimal funds.
- Check the developer’s identity: Look for a verified GitHub account or company team page. Many malicious Snaps are published by anonymous or newly created accounts.
What to Do If You’ve Installed a Malicious Snap
- Immediately remove the Snap: Go to MetaMask settings > Snaps, find the suspicious Snap, and click the three dots to disconnect or remove it.
- Revoke any token approvals: Use a tool like
revoke.cashoretherscan.io/tokenapprovalcheckerto remove approvals the Snap may have created. - Transfer assets to a new wallet: If you suspect the Snap accessed your private key or signed malicious transactions, move all funds and NFTs to a different address generated from a fresh seed phrase.
- Change seed phrase: If the Snap requested
snap_getBip44Entropy_*(see permission table), your private key is compromised. Generate a new wallet and never reuse the old one. - Monitor for lingering permissions: Check MetaMask’s Snap management to ensure no residual permissions remain. Some Snaps can hide themselves.
- Report the Snap: Notify MetaMask via their bug bounty program and share details on crypto security forums (e.g., reddit.com/r/ethereum) to warn others.
Comparison: Traditional Signature Phishing vs. Snap-Based Phishing
| Aspect | Traditional Signature Phishing | Snap-Based Phishing |
|---|---|---|
| Attack vector | Fake website or dApp pretending to be legitimate | Malicious Snap installed inside MetaMask |
| User interaction | User must sign a message or approve a transaction on a phishing site | User grants permissions during Snap installation; subsequent signatures are automatic |
| Visibility | Requires user to visit a phishing URL and be tricked by a UI | Operates inside the user’s own wallet interface, harder to detect |
| Recovery difficulty | Moderate: revoke approvals, change passwords | High: may compromise private key or persistent permissions across sessions |
| Typical permission requested | eth_signTypedData for token approvals, eth_sendTransaction | snap_getBip44Entropy, account-management (Keyring) permissions, endowment:network-access |
Snap-based phishing is more dangerous because it operates within a trusted environment. The user is not prompted repeatedly; once permissions are granted, the Snap can act autonomously. Traditional phishing still relies on continuous user error or one-time signing of a malicious message. In contrast, a Snap can exfiltrate data or drain the wallet over time without the user’s knowledge.
Future of Snap Security: How MetaMask and the Community Are Responding
MetaMask has introduced several security enhancements to counter Snap phishing. Newer versions require Snaps to declare permissions explicitly in the manifest with human-readable descriptions. The wallet also shows a permission summary during installation, and can flag suspicious permissions (e.g., key-derivation entropy is now highlighted as dangerous).
Community tools like Snap Security Scanner (community-built) allow users to input a Snap URL and receive a risk assessment based on permissions. Some projects are working on dynamic permission enforcement, where Snaps cannot use signature permissions without user confirmation through a separate dialog.
Despite these improvements, attackers evolve quickly. Social engineering remains the biggest vulnerability. As Snaps gain adoption, the attack surface will grow. Users must stay educated and treat every Snap installation as a potential risk. The community and MetaMask are focusing on sandboxing, permission whitelists, and real-time threat detection.
Common mistakes to avoid
- Installing Snaps from unofficial sources like random Twitter links or Discord DMs.
- Approving all Snap permissions without reading them, especially the signature permissions.
- Assuming Snaps listed on unofficial directories are safe because they appear popular.
- Using the same wallet for Snap testing as for main holdings.
- Ignoring the permission warning when a Snap requests both network access and account-management permissions.
- Failing to revoke Snap permissions after uninstalling the Snap (some permissions persist).
Frequently asked questions
What is the most dangerous Snap permission for phishing?
Snaps cannot call eth_sign or eth_sendTransaction on your existing accounts, so the most dangerous permissions are key-derivation entropy (snap_getBip44Entropy / snap_getBip32Entropy), which lets a Snap reconstruct your private keys, and account-management (Keyring API) permissions, which let a Snap control accounts and their signing. Treat either as a wallet-draining risk.
Can a malicious Snap steal my seed phrase?
Yes, if the Snap requests snap_getBip44Entropy_60 (for Ethereum) or similar permissions, it can derive the private key from the seed. Always treat such permissions as a red flag.
How do I revoke a Snap’s permissions after uninstalling?
Go to MetaMask settings > Snaps, click the Snap name, and press 'Disconnect' or 'Remove'. Then ensure no underlying token approvals remain by using revoke.cash. If the Snap had private key access, create a new wallet.
Are Snap scams common in 2025?
Yes, they are increasing as Snaps gain adoption. Attackers target early adopters with fake airdrop and tooling Snaps. Reports indicate millions lost annually, so vigilance is essential.
Related reading
Track the entities behind the concepts
DeFi Intel maps 11,000+ protocols, tokens and companies to a typed knowledge graph — with live data, incidents and regulation.