Kurz erklärt: Permit2 ist ein von Uniswap veröffentlichter Contract, der als Vermittler für Token-Freigaben dient. Er erlaubt Freigaben mit Ablaufdatum und über Signatur statt Transaktion — auch für Token, die EIP-2612 nicht unterstützen. In der Praxis ist er heute häufiger anzutreffen als das ursprüngliche Permit und hat eigene Angriffsformen hervorgebracht.
Das Konstruktionsprinzip
Der Nutzer erteilt seine Freigabe nicht mehr der einzelnen Anwendung, sondern einmalig dem Permit2-Contract. Alle Anwendungen, die ihn einbinden, greifen anschließend über ihn zu — auf Grundlage einer Signatur, die Empfänger, Betrag und Gültigkeitsdauer festlegt.
Zwei Verbesserungen gegenüber der klassischen Freigabe sind darin angelegt. Freigaben laufen ab: Statt einer unbefristeten Vollmacht entsteht eine mit Zeitgrenze. Und der Mechanismus funktioniert für jeden Token, auch für ältere ohne eigene Permit-Funktion.
Der Preis ist eine Bündelung. Wer Permit2 einmal freigibt, gibt für jede Anwendung frei, die ihn nutzt. Die einzelne Nutzung wird sicherer, die Gesamtvollmacht größer.
Was das im Schadensfall bedeutet
Bei einem Vorfall verschiebt sich die Prüfung an eine andere Stelle, und das wird regelmäßig übersehen.
Wer nach dem Vorfall die klassischen Freigaben prüft, findet dort möglicherweise nichts Auffälliges — nur eine Freigabe an Permit2 selbst, die harmlos aussieht. Die schädliche Berechtigung liegt eine Ebene tiefer: als Signatur im Permit2-Contract, mit Empfänger, Betrag und Ablaufdatum.
Für die Bereinigung heißt das, beide Ebenen zu betrachten: die Freigabe an Permit2 im Token-Contract und die dort hinterlegten Berechtigungen. Die spezialisierten Widerrufs-Dienste weisen beides getrennt aus; die einfachen Freigabe-Übersichten der Explorer zeigen häufig nur die erste Ebene.
Für die Auswertung gilt entsprechend: Ein Abfluss, der über Permit2 lief, ist an einem Zwischenschritt erkennbar — der Token bewegt sich nicht unmittelbar zur Täteradresse, sondern wird über den Vermittler-Contract abgewickelt.
Angriffsform
Die Masche folgt dem Muster des Permit-Phishings, mit einem entscheidenden Unterschied: Sie funktioniert bei allen Token, nicht nur bei denen mit eigener Permit-Funktion. Damit ist die Angriffsfläche deutlich größer.
Der Ablauf ist unauffällig. Eine nachgebildete Handelsoberfläche fordert eine Signatur an, die wie eine gewöhnliche Bestätigung wirkt. Tatsächlich hinterlegt sie eine Berechtigung mit hohem Betrag und langer Laufzeit zugunsten einer fremden Adresse. Es entsteht keine Transaktion und keine Gebühr.
Das wirksamste Prüfmerkmal ist die Gültigkeitsdauer. Eine legitime Anwendung braucht eine Berechtigung für Minuten bis Stunden. Steht dort ein Zeitraum von Wochen oder Monaten, passt das nicht zum angeblichen Zweck — unabhängig davon, wie vertrauenswürdig die Oberfläche wirkt.
Häufige Fragen
Was ist der Vorteil von Permit2?
Freigaben erhalten ein Ablaufdatum statt unbefristet zu gelten, und der Mechanismus funktioniert für alle Token, auch für ältere ohne eigene Permit-Funktion. Der Preis ist eine Bündelung: Eine Freigabe an Permit2 gilt für jede Anwendung, die ihn nutzt.
Ich habe meine Freigaben geprüft und nichts gefunden — kann trotzdem etwas offen sein?
Ja. Bei Permit2 liegt die schädliche Berechtigung eine Ebene tiefer, als Signatur im Vermittler-Contract. Einfache Freigabe-Übersichten zeigen nur die erste Ebene; spezialisierte Widerrufs-Dienste weisen beide aus.
Woran erkenne ich eine bösartige Permit2-Signaturanfrage?
An der Gültigkeitsdauer. Eine legitime Anwendung braucht eine Berechtigung für Minuten bis Stunden. Wochen oder Monate passen zu keinem legitimen Zweck — unabhängig davon, wie die Oberfläche wirkt.
Zusammenfassung
Permit2 vermittelt Token-Freigaben zentral: Der Nutzer gibt einmalig dem Vermittler-Contract frei, Anwendungen greifen über Signaturen mit Betrag und Ablaufdatum zu. Das bringt Befristung und Unterstützung für alle Token, bündelt aber die Vollmacht. Im Schadensfall liegt die schädliche Berechtigung eine Ebene tiefer als die sichtbare Freigabe — beide Ebenen sind zu prüfen. Bestes Warnzeichen ist eine Gültigkeitsdauer von Wochen statt Stunden.
Weiterführende Quellen
- Uniswap — Permit2, technische Dokumentation: docs.uniswap.org
- Uniswap — Permit2, Quelltext und Spezifikation: github.com
- EIP-2612: Permit — signed approvals for ERC-20: eips.ethereum.org
- EIP-712: Typed structured data hashing and signing: eips.ethereum.org