Skip to content

Validity check for signed Frontier-specific extrinsic not called in block execution

Moderate
sorpaas published GHSA-vj62-g63v-f8mf Oct 13, 2021

Package

cargo Frontier (Rust)

Affected versions

>= 88cf884 and < 146bb48

Patched versions

>= 146bb48

Description

Impact

In the newly introduced signed Frontier-specific extrinsic for pallet-ethereum, a large part of transaction validation logic was only called in transaction pool validation, but not in block execution. Malicious validators can take advantage of this to put invalid transactions into a block.

The attack is limited in that the signature is always validated, and the majority of the validation is done again in the subsequent pallet-evm execution logic. However, do note that a chain ID replay attack was possible. In addition, spamming attacks are of main concerns, while they are limited by Substrate block size limits and other factors.

Patches

The issue is patched in commit 146bb48.

References

Patch PR: #495

For more information

If you have any questions or comments about this advisory:

Special thanks

Special thanks to @librelois, @nanocryk and the Moonbeam team for reporting and fixing this security vulnerability.

Severity

Moderate

CVE ID

CVE-2021-41138

Weaknesses

No CWEs