The fallback function of a simple lottery smart contract implementation for Lucky9io, an Ethereum gambling game, generates a random value with the publicly readable variable entry_number. This variable is private, yet it is readable by eth.getStorageAt function. Also, attackers can purchase a ticket at a low price by directly calling the fallback function with small msg.value, because the developer set the currency unit incorrectly. Therefore, it allows attackers to always win and get rewards.
Advisories
Source ID Title
EUVD EUVD EUVD-2018-8852 The fallback function of a simple lottery smart contract implementation for Lucky9io, an Ethereum gambling game, generates a random value with the publicly readable variable entry_number. This variable is private, yet it is readable by eth.getStorageAt function. Also, attackers can purchase a ticket at a low price by directly calling the fallback function with small msg.value, because the developer set the currency unit incorrectly. Therefore, it allows attackers to always win and get rewards.
Fixes

Solution

No solution given by the vendor.


Workaround

No workaround given by the vendor.

History

No history.

cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2024-08-05T10:39:59.540Z

Reserved: 2018-09-15T00:00:00

Link: CVE-2018-17071

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Modified

Published: 2018-09-18T21:29:03.807

Modified: 2024-11-21T03:53:49.540

Link: CVE-2018-17071

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

No data.