Langsamnebel veröffentlicht Details, ether.fi wird angegriffen und erleidet einen Verlust von etwa 15,45 ETH. Langsamnebel behauptet, er habe das Team bereits vor der Veröffentlichung der Meldung vertraulich kontaktiert, um eine verantwortungsvolle Offenlegung vorzunehmen.

Das Problem liegt im AtomicQueue-Vertrag bei der solve()-Funktion: Der Vertrag überprüft nicht, ob solver == msg.sender, und verfügt weder über eine Signatur-, Registrierungs- oder Autorisierungsmechanismus. Der Angreifer erstellt zunächst mithilfe von updateAtomicRequest() eine bösartige Anfrage und zwingt anschließend die Opferadresse dazu, zum solver zu werden. Danach ruft der Vertrag finishSolve auf und führt want.transferFrom(solver, users[i], assetsToUser) aus, wodurch die zuvor vom Opfer autorisierten ERC-20-Beträge abgezogen werden.

Das ist erneut eine Erinnerung: Eingabeparameter dürfen nicht als standardmäßig vertrauenswürdig angenommen werden; Abläufe, die transferFrom betreffen, müssen die aufrufende Partei und die Autorisierungsbeziehung prüfen. Nutzer sollten zudem regelmäßig uneingeschränkte Autorisierungen bereinigen.

#Web3安全 #DeFi