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…
GitHub_M·CWE-669·Published 2022-12-28
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.
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.
Elrond-GO processing: fallback search of SCRs when not found in the main cache in github.com/ElrondNetwork/elrond-go
### 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](https://github.com/ElrondNetwork/elrond-go)
Elrond-GO es una implementación del protocolo Elrond Network. Las versiones anteriores a la 1.3.50 están sujetas a un problema de procesamiento en el que los nodos se ven afectados al intentar procesar una transacción retransmitida entre fragmentos con datos de transacción de implementación de contrato inteligente. El problema era una mala correlación entre los cachés de transacciones y el componente de procesamiento. Si la transacción mencionada anteriormente se envió con más gas del requerido, el resultado del contrato inteligente (transacción SCR) que debería haber devuelto el gas sobrante, se habría agregado erróneamente a un caché que la unidad de procesamiento no consideró. El nodo dejó de certificar ante notario los bloques de metacadena. En realidad, la solución fue extender la búsqueda de transacciones SCR en todos los demás cachés si no se encontraba en el caché fragmentado correcto (esperado). No se conocen workarounds en este momento. Este problema se solucionó en la versión 1.3.50.
| Version | Type | Source | Base | Exp | Impact | Vector |
|---|---|---|---|---|---|---|
| 3.1 | Primary | cve.org | 7.2 | — | — | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:L |
| 3.1 | Primary | cve.org | 7.2 | — | — | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:L |
| 3.1 | Primary | NVD | 6.5 | 3.9 | 2.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L |
| 3.1 | Secondary | GHSA | 7.2 | — | — | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:L |
| 3.1 | Secondary | NVD | 7.2 | 3.9 | 2.7 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:L |