Headline
GHSA-p228-4mrh-ww7r: Elrond-GO processing: fallback search of SCRs when not found in the main cache
Impact
Processing issue, nodes are affected when trying to process a cross-shard relayed transaction with a smart contract deploy transaction data. The problem was a bad correlation between the transaction caches and the processing component. If the above-mentioned transaction was sent with more gas than required, the smart contract result (SCR transaction) that should have returned the leftover gas, would have been wrongly added to a cache that the processing unit did not consider. The node stopped notarizing metachain blocks. The fix was actually to extend the SCR transaction search in all other caches if it wasn’t found in the correct (expected) sharded-cache.
Patches
All versions >= v1.3.50 will contain this patch
Workarounds
For the moment there is no workaround
References
N/A
For more information
If you have any questions or comments about this advisory:
- Open an issue in elrond-go main repo
Impact
Processing issue, nodes are affected when trying to process a cross-shard relayed transaction with a smart contract deploy transaction data. The problem was a bad correlation between the transaction caches and the processing component. If the above-mentioned transaction was sent with more gas than required, the smart contract result (SCR transaction) that should have returned the leftover gas, would have been wrongly added to a cache that the processing unit did not consider. The node stopped notarizing metachain blocks. The fix was actually to extend the SCR transaction search in all other caches if it wasn’t found in the correct (expected) sharded-cache.
Patches
All versions >= v1.3.50 will contain this patch
Workarounds
For the moment there is no workaround
References
N/A
For more information
If you have any questions or comments about this advisory:
- Open an issue in elrond-go main repo
References
- GHSA-p228-4mrh-ww7r
- https://nvd.nist.gov/vuln/detail/CVE-2022-46173
- ElrondNetwork/elrond-go#4718
- ElrondNetwork/elrond-go@39d7ddc
Related news
Elrond-GO is a go implementation for the Elrond Network protocol. Versions prior to 1.3.50 are subject to a processing issue where nodes are affected when trying to process a cross-shard relayed transaction with a smart contract deploy transaction data. The problem was a bad correlation between the transaction caches and the processing component. If the above-mentioned transaction was sent with more gas than required, the smart contract result (SCR transaction) that should have returned the leftover gas, would have been wrongly added to a cache that the processing unit did not consider. The node stopped notarizing metachain blocks. The fix was actually to extend the SCR transaction search in all other caches if it wasn't found in the correct (expected) sharded-cache. There are no known workarounds at this time. This issue has been patched in version 1.3.50.