Bitcoin.com News
Oferit de

Indexatorul Kasplex KRC-20, cu funcția „Signature Bypass”, epuizează două rezerve de tokenuri

În acest weekend, un atacator a sustras 186,4 milioane de ZEAL și 54,4 miliarde de NACHO dintr-un portofel Kaspa de tip KRC-20 fără a deține cheia privată a acestuia, apoi a reciclat tokenurile prin rețelele de nivel doi (L2) și le-a vândut în fondurile de lichiditate. Ciudat este faptul că Kaspa în sine nu a fost piratată. Cinci tranzacții valide au indus în eroare un indexator off-chain, determinându-l să recunoască transferuri pe care, de fapt, nimeni nu le semnase, lăsând token-urile transferate fără acoperire și unele pool-uri lipsite de până la 99,6% din valoarea lor pe partea KAS.

SCRIS DE
DISTRIBUIE
Indexatorul Kasplex KRC-20, cu funcția „Signature Bypass”, epuizează două rezerve de tokenuri

Concluzii cheie

  • Un atacator a mutat 54,4 miliarde de NACHO fără a deține cheia privată a portofelului de tip „bridge”.
  • Pool-urile Zealous Swap au pierdut între 94% și 99,6% din valoarea lor pe partea KAS în urma transferurilor falsificate.
  • Igra a suspendat ieșirile cheie, în timp ce operatorii KRC-20 se pregătesc să remedieze problema și să reindexeze sistemul.

Cinci tranzacții, fără cheie privată

O cheie privată ar trebui să fie linia de demarcație între a deține criptomonede și a ști pur și simplu unde se află acestea. Pe 20 septembrie, cineva a găsit o modalitate de a ocoli această presupunere pentru tokenurile KRC-20, fără a afecta deloc lanțul de bază Kaspa.

Atacatorul a transferat 186.425.259 ZEAL și 54.397.983.246 NACHO dintr-o adresă de custodie a podului, chiar dacă nu deținea cheia privată a acesteia. Aceste token-uri au fost apoi trimise înapoi la aceeași adresă de custodie ca niște depozite obișnuite ale punții, emise pe stratul EVM al Igra Labs și pe Kasplex L2, și aruncate în fondurile de lichiditate ale Zealous Swap.

Până când lucrurile s-au liniștit, soldurile L2 ZEAL și NACHO ale atacatorului erau goale, în timp ce fondurile afectate pierduseră între 94% și 99,6% din valoarea lor pe partea KAS. Iată care este problema: stratul unu (L1) al Kaspa a făcut exact ceea ce trebuia să facă.

O semnătură goală care totuși a fost acceptată

Proprietatea asupra tokenurilor KRC-20 nu este impusă direct de consensul Kaspa. Instrucțiunile tokenurilor sunt incluse în tranzacțiile Kaspa, în timp ce un indexator Kasplex off-chain citește aceste instrucțiuni și determină cine deține ce. În mod normal, un transfer KRC-20 conține o cheie publică, instrucțiuni pentru token și o semnătură validă. Atacatorul a păstrat acea structură familiară, dar a furnizat o semnătură goală și a adăugat un OP_NOT după OP_ENDIF.

X screenshot
Sursa imaginii: X

O semnătură goală face ca OP_CHECKSIG să returneze „false” în loc să anuleze tranzacția imediat. OP_NOT-ul suplimentar a inversat rezultatul înapoi la „true”, lăsând Kaspa cu o tranzacție validă. La nivelul consensului, totul a decurs normal. Indexatorul a fost însă o altă poveste. Acesta a recunoscut plicul KRC-20, dar nu a cerut ca scriptul să corespundă exact formatului canonic. În consecință, a considerat transferul falsificat ca fiind legitim. Chiar și propria API a Kasplex a returnat opAccept: 1 la prima tranzacție ZEAL falsificată.

Oricine putea crea falsificarea

Cea mai neplăcută întorsătură a fost faptul că atacatorul nu a avut nevoie să descopere vreo credențială ascunsă. O adresă Kaspa standard expune cheia publică necesară pentru a construi operațiunea KRC-20 falsificată. Asta înseamnă că mutarea token-urilor la o altă adresă nu rezolvă problema de fond. Până când indexatorul nu este remediat și istoricul său reindexat, aceeași vulnerabilitate poate fi, teoretic, folosită împotriva soldurilor KRC-20 din alte părți.

Cinci tranzacții au falsificat transferurile ZEAL și NACHO. În schimb, nouă retrageri minuscule de câte o unitate au fost semnate în mod autentic de către custodie și par să fi fost încercări de a testa dacă ruta de ieșire funcționa. Interesant este că tranzacțiile legitime erau cele minuscule. Portofelul de custodie deținea aproximativ 50 de alte tokenuri KRC-20. Atacatorul a ales două.

Tokenurile sunt încă acolo, dar acoperirea nu mai există

Duminică dimineață, Igra a declarat întreaga deținere de ZEAL și NACHO din portofelul de custodie a fost sustrasă, lăsând 97.651.212 ZEAL și 42.570.879.908 NACHO pe rețelele de nivel 2 fără acoperire completă pe L1. Alte 4,5 miliarde de NACHO au rămas la atacator pe L1.

Igra a suspendat retragerile iKAS către Kaspa L1 și transferurile Hyperlane, în timp ce utilizatorii au fost avertizați să nu efectueze bridging pentru token-urile KRC-20, să nu cumpere ZEAL sau NACHO pe bursele descentralizate (DEX) de pe L2 și să nu adauge lichiditate în pool-urile afectate. KAS nativ, consensul Kaspa și activele Igra care nu erau tokenuri KRC-20 transferate au fost descrise ca neafectate.

Remedierea software-ului nu va rezolva singură problema. Zealous Swap afirmă că operatorii trebuie să aplice un patch la indexator și să reindexeze istoricul acestuia, respingând semnăturile goale, etichetele malformate și scripturile care continuă dincolo de OP_ENDIF. Nacho the Kat, între timp, spune că comunitatea intenționează să treacă la KCC-20, un standard conceput pentru a integra regulile token-urilor în scripturi aplicate de rețea însăși.

Problema survine în urma unei serii de exploatări, bug-uri, atacuri cibernetice și încălcări ale securității datelor din ultimele câteva săptămâni. Sâmbătă, Blink Wallet, furnizor de infrastructură custodială și non-custodială pentru Lightning Network, a dezvăluit că „câteva zeci” de conturi custodiale au fost golite. Compania de securitate cibernetică DCENT a constatat, de asemenea, că portofelele aplicației DCENT au fost golite în această săptămână. Acest moment survine pe fondul intensificării atacurilor cibernetice, iar unii suspectează că inteligența artificială contribuie la această val de atacuri.

Acest articol a fost tradus din limba engleză cu ajutorul inteligenței artificiale. Versiunea originală în limba engleză este sursa autoritară; traducerile automate pot conține inexactități, în special în terminologia juridică și de reglementare.