Mysterious Fog zerlegt Liquid: Etwa 4.000 L-BTC sind frei geprägt – nicht per peg-in hineingekommen

Mysterious Fog hat den Split vom 6. September aufgegliedert: Der Angreifer hat keinen peg-in durchgeführt, sondern etwa 3998,5 L-BTC frei geprägt und sie innerhalb weniger Minuten per peg-out in den Hauptnet-BTC umgewandelt. Später zahlte er etwa 3400 zurück; in der Hand hielt er noch etwa 598,5. Der Betrag stand letzte Woche bereits im Text: „Wie wurde das neue Material geprägt?“

Die Ursache liegt im Rangeproof-Validierungs-Cache in Elements: Beim Zusammenbauen eines Cache-Schlüssels aus mehreren variablen, langen Feldern wurde kein Längenpräfix hinzugefügt. Dadurch können verschiedene Parameterkombinationen auf denselben „bereits bestanden“-Cache-Resultat kollidieren. Der Knoten übersprang dann direkt secp256k1_rangeproof_verify und die Prüfung auf den Mindestbetrag. Zuerst wurde eine gültige Proof-Instanz eingefügt, um den Cache warm zu füttern, und anschließend eine zweite Instanz mit kollidierendem Schlüssel als falsche Ausgabe übergeben – unbesichertes Prägen war möglich.

Nur weil die Brücke stillsteht und er einen Großteil zurückgezahlt hat, heißt das nicht, dass der Validierungs-Cache für „geheim“ (vertrauliche) Transaktionen bereits ohne Schwachstellen ist. Der Cache-Schlüssel selbst ist ein Konsens-Primitive; wenn die Grenzen nicht sauber festgenagelt sind, bleibt eine Tür offen.