xrpl.js 2.15.0: Text als Entropie erzeugt keine Null-Seed-Wallet mehr
Die JavaScript-Bibliothek xrpl.js für das XRP Ledger hat am 8. Oktober [email protected] veröffentlicht, einen Backport für die 2.x-Wartungslinie einer Entropie-Prüfung, die bereits in xrpl 5.2.0 und ripple-keypairs 3.1.0 enthalten ist.
Der Fehler laut Pull Request (#3488):
Wallet.fromEntropyreichte die Eingabe anUint8Array.from()weiter, das jedes iterierbare Objekt annimmt. Zeichenketten wurden überNumber()umgewandelt, Buchstaben wurden zuNaNund als0gespeichert. Im eigenen Beispiel des PRs lieferteWallet.fromEntropy('abcdefghijklmnop')eine echte, nutzbare Wallet aus 16 Null-Bytes ohne Fehlermeldung — eine Wallet, die jeder andere genauso ableiten kann.generateSeedin ripple-keypairs 1.x nahm jede Entropie ab 16 Bytes an und nutzte stillschweigend nur die ersten 16; Eingaben mit gleichem Anfang ergaben dieselbe Wallet.
Nach der Korrektur prüft fromEntropy die Eingabe, statt sie umzuwandeln, und generateSeed verlangt genau 16 Bytes. Ein Node-Buffer funktioniert weiter, da er eine Unterklasse von Uint8Array ist.

Warum ein Backport. Laut PR entfallen auf die 2.x-Linie noch 37 % der wöchentlichen xrpl-Downloads (124.000) und auf ripple-keypairs 1.x 35 % der Downloads. Der PR vermerkt außerdem, dass 2.x auf dem Tag 2.14.1 basiert, weil 2.14.2 die kompromittierte Version aus dem Advisory GHSA-33qr-m49q-rxfx war und 2.14.3 die saubere Neuveröffentlichung.
So kommt man daran — wichtig. Auf npm erscheint 2.15.0 unter dem Dist-Tag entropy-2.x-experimental, nicht unter latest (das ist 5.3.0); entsprechende Backports gibt es als 3.2.0 und 4.7.0 unter eigenen Tags. Ein normales Update innerhalb von ^2 holt die Version, aber wer Versionen festschreibt, bekommt sie nicht automatisch.
Was zu prüfen ist. Wo Code XRPL-Wallets aus vom Aufrufer gelieferter Entropie ableitet — Seed-Generatoren, Testwerkzeuge, verwahrtes Onboarding —, nach Zeichenketten oder Arrays falscher Länge suchen, die fromEntropy oder generateSeed erreichen. Jede so vor der Korrektur erzeugte Wallet kann erratbar sein und sollte als kompromittiert gelten: Guthaben auf eine Wallet aus echten Zufallsbytes verschieben.
Quellen: GitHub-Release [email protected], 8. Oktober 2026 — https://github.com/XRPLF/xrpl.js/releases/tag/xrpl%402.15.0 ; Pull Request #3488 — https://github.com/XRPLF/xrpl.js/pull/3488