-
Notifications
You must be signed in to change notification settings - Fork 540
Fix EOA check heuristics #1655
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix EOA check heuristics #1655
Conversation
|
What happens when CREATE fails? Is this heuristic still accurate? |
I'm not certain if there's a specification issue in EIP-7702 (and we should ping them immediately about this because it's in last call!), or we misunderstood this. In "Behavior" section No. 5:
EIP-7702 only checks that the code is empty. "Already delegated" means that a "delegation indicator" is written in the account code I think what they're doing is already sufficient because EIP-7702 is on transaction level. You can't invoke a CREATE at the same time. |
For being compliant with EIP-7702, checking if an address is
The purpose of this PR is not to add support for Updated the PR description to avoid confusion, |
|
Can you explain more what happens when |
Even if The notion about |
* Fix EOA check heuristics * update Cargo.lock * improvement
|
@RomarQ Is this SRLabs' S3-55? From what I see this doesn't directly affect Frontier, as |
Yes, it fixes S3-55. |
|
The underlying issue applied to Frontier since it was a core-assumption which was broken. Any security sensitive features relying on inspecting the account type would be rendered insufficient. This extends to any custom or native features dependent on this underlying check, as an example |
|
Is any precompile implementation in Frontier that uses |
|
I would say that the severity is low |
|
Security advisory: GHSA-fr62-ppwc-mc2h |
Follow-up of: rust-ethereum/evm#313
Implements a new method on the precompile handler to obtain the addresses of contracts being constructed.
This is necessary because contracts under-construction don't have code, the code will only be added to storage after the init_code is executed.
Address type heuristics:
Precompileif callingpallet_evm::Config::PrecompilesValue::get().is_precompilereturns true;EOAwhen the address does not have code;