Bitcoin.com News
Drevet af

Kasplex KRC-20 Indexer Signature tømmer to token-puljer via en bypass-funktion

I weekenden hentede en hacker 186,4 millioner ZEAL og 54,4 milliarder NACHO fra en Kaspa KRC-20-bridge-wallet uden at være i besiddelse af den tilhørende private nøgle. Herefter genanvendte vedkommende tokens via layer 2 (L2)-netværk og solgte dem til likviditetspuljer. Det mærkelige er, at Kaspa selv ikke blev hacket. Fem gyldige transaktioner narrede en off-chain-indekser til at anerkende overførsler, som ingen faktisk havde underskrevet, hvilket efterlod de broforbundne tokens uden dækning og nogle puljer frataget hele 99,6 % af deres værdi på KAS-siden.

SKREVET AF
DEL
Kasplex KRC-20 Indexer Signature tømmer to token-puljer via en bypass-funktion

Vigtige konklusioner

  • En angriber flyttede 54,4 milliarder NACHO uden at være i besiddelse af bridge-walletens private nøgle.
  • Zealous Swap-puljerne mistede 94 % til 99,6 % af deres værdi på KAS-siden efter de forfalskede overførsler.
  • Igra har sat vigtige udtrækninger på pause, mens KRC-20-operatørerne forbereder sig på at lappe og reindeksere systemet.

Fem transaktioner, ingen privat nøgle

En privat nøgle skal være grænsen mellem at eje krypto og blot at vide, hvor den befinder sig. Den 20. september fandt nogen en måde at omgå denne antagelse for KRC-20-tokens uden overhovedet at bryde Kaspa's basekæde.

Angriberen flyttede 186.425.259 ZEAL og 54.397.983.246 NACHO fra en bro-opbevaringsadresse, selvom vedkommende ikke kontrollerede den private nøgle. Disse tokens blev derefter sendt tilbage til den samme depotadresse som almindelige broindskud, udstedt på Igra Labs’ EVM-lag og Kasplex L2, og dumpet i Zealous Swaps likviditetspuljer.

Da støvet havde lagt sig, var angriberens L2 ZEAL- og NACHO-saldi tomme, mens de berørte puljer havde mistet mellem 94 % og 99,6 % af deres værdi på KAS-siden. Her er hagen: Kaspas lag 1 (L1) gjorde præcis, hvad det skulle.

En tom signatur, der alligevel blev godkendt

Ejerskabet af KRC-20-tokens håndhæves ikke direkte af Kaspa-konsensus. Tokeninstruktionerne indgår i Kaspa-transaktionerne, mens en off-chain Kasplex-indekserer læser disse instruktioner og afgør, hvem der ejer hvad. Normalt indeholder en KRC-20-overførsel en offentlig nøgle, tokeninstruktioner og en gyldig signatur. Angriberen bevarede denne velkendte struktur, men leverede en tom signatur og tilføjede en OP_NOT efter OP_ENDIF.

X screenshot
Billedkilde: X

En tom signatur får OP_CHECKSIG til at returnere ”false” i stedet for at afvise transaktionen med det samme. Den ekstra OP_NOT vendte resultatet tilbage til ”true”, hvilket efterlod Kaspa med en gyldig transaktion. Intet var gået galt på konsensuslaget. Indekseringsprogrammet var en anden historie. Det genkendte KRC-20-konvolutten, men krævede ikke, at scriptet stemte nøjagtigt overens med det kanoniske format. Det godkendte derfor den forfalskede overførsel som legitim. Kasplex’ egen API returnerede endda opAccept: 1 på den første forfalskede ZEAL-transaktion.

Enhver kunne lave forfalskningen

Det værste ved det hele var, at angriberen ikke behøvede at afsløre nogen skjulte legitimationsoplysninger. En standard Kaspa-adresse afslører den offentlige nøgle, der er nødvendig for at konstruere den forfalskede KRC-20-operation. Det betyder, at det ikke løser det underliggende problem at flytte tokens til en anden adresse. Indtil indekseren er rettet, og dens historik er indekseret på ny, kan den samme fejl teoretisk set udnyttes mod KRC-20-saldoer andre steder.

Fem transaktioner forfalskede ZEAL- og NACHO-overførslerne. Ni små udbetalinger på én enhed var derimod ægte underskrevet af depotet og ser ud til at have været test for at se, om flugtvejen fungerede. Interessant nok var det de små transaktioner, der var legitime. Depot-walleten indeholdt omkring 50 andre KRC-20-tokens. Angriberen valgte to.

Tokens er der stadig, men dækningen er væk

Søndag morgen oplyste Igra, at hele depot-wallets beholdning af ZEAL og NACHO var blevet stjålet, hvilket efterlod 97.651.212 ZEAL og 42.570.879.908 NACHO på Layer 2-netværkene uden fuld L1-dækning. Yderligere 4,5 milliarder NACHO forblev hos angriberen på L1.

Igra satte iKAS-udbetalinger til Kaspa L1 og Hyperlane-overførsler på pause, mens brugerne blev advaret mod at brokoble KRC-20-tokens, købe ZEAL eller NACHO på L2-decentraliserede børser (DEX'er) eller tilføre likviditet til de berørte puljer. Indfødte KAS, Kaspa-konsensus og Igra-aktiver, der ikke var broforbundne KRC-20-tokens, blev beskrevet som upåvirkede.

Det er ikke nok blot at rette softwaren for at rydde op i rodet. Zealous Swap siger, at operatørerne skal lappe indexeren og reindeksere dens historik, idet de afviser tomme signaturer, fejlformaterede tags og scripts, der fortsætter ud over OP_ENDIF. Nacho the Kat siger derimod, at fællesskabet har til hensigt at gå over til KCC-20, en standard designet til at indarbejde tokenregler i scripts, der håndhæves af selve netværket.

Problemet følger i kølvandet på en lang række sårbarheder, fejl, hackerangreb og datalækager i løbet af de seneste uger. Lørdag afslørede Blink Wallet, en udbyder af infrastruktur til Lightning Network med og uden opbevaring, at »et par dusin« konti med opbevaring var blevet tømt. Cybersikkerhedsfirmaet DCENT oplevede også, at der blev stjålet penge fra DCENT App Wallets i denne uge. Det sker på et tidspunkt, hvor cybersikkerhedsangrebene er taget til, og nogle mistænker, at AI er med til at understøtte denne bølge af udnyttelser.

Denne artikel er oversat fra engelsk ved hjælp af kunstig intelligens. Den originale engelske version er den autoritative kilde; automatiske oversættelser kan indeholde unøjagtigheder, især i juridisk og lovgivningsmæssig terminologi.