Nick Chong · 5 days ago · 2 min read · Insights via Grayscale Investments
An ongoing exploit on EOSIO is allowing an attacker to win every roll on gambling dApp EOSPlay by paying to fill blocks with their transactions. So far, the attacker gained 30,000 EOS worth over $110,000 while making the network “unusable.”
Scale of the exploit
A clever attacker was able to use REX, an EOS resource exchange for RAM and CPU, to ensure that blocks were filled with their transactions to continuously win on the gambling dApp EOSPlay. This resulted in the EOSIO network “freezing” as thousands of EOS were fed to the attacker’s wallet, as confirmed by another source.
For 300 EOS, worth a little over $1,000, the attacker was able to make away with 30,000 EOS tokens, said Jared Moore to CryptoSlate, an active community member. A look at the on-chain transactions involved confirms the attack.
One anonymous smart contract developer, the creator of the ERC-233 token, stated the attack may have impacted more than just EOSPlay. The attacker appears to be leveraging multiple accounts to exploit several different smart contracts.
It seems that the scale of the attack is much larger than we originally expected.
These are attacker's accounts:https://t.co/wdeRVVHT4Vhttps://t.co/euC2gEncj7https://t.co/7mrpdRfGLihttps://t.co/Wsl578HVPahttps://t.co/I0aTR8OvbQhttps://t.co/7ixE6VCoLfhttps://t.co/1QIOQDfDlw
— Dexaran (@Dexaran) September 13, 2019
Mechanics behind the attack
As for the method behind the attack, EOSIO Alabama explained that the billing rate for CPU resources dynamically increases on REX.
“Everyone basically gets locked out unless they have more EOS staked than the attacker,” he reasoned.
In this instance, the attacker had roughly 900,000 EOS staked and allocated to CPU, seemingly preventing others from accessing the resource. The anonymous security engineer supported this theory, saying that “by congesting the network the attacker disallowed anyone to send transactions because the cost was too high for most users.”
That same developer stated that his EOS only provided 0.2 percent of the network resources EOSIO would normally divvy-up to stakers, an indicator of how serious the congestion was.
Probably the RNG of attacked gambling DApps could use some transactions or data from earlier blocks as a source of entropy.
It's easier to manipulate "previous blocks" when the network is congested and you are the only one having resources to send transactions.
— Dexaran (@Dexaran) September 14, 2019
What’s even more insidious: the owners of the smart contracts would have difficulty disabling their contracts due to the network congestion and lack of network resources, as described above, said the developer. Until there’s a fork or a patch, the exploit can continue to be abused whenever an EOSIO user spends $1,000 or more on REX, Moore added.
EOSPlay should be avoided until the exploit is fixed. For the rest of the network, people’s funds should not be at risk from the exploit.
Information is being added to this story as things unfold.