-
Notifications
You must be signed in to change notification settings - Fork 0
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
π·π»ββοΈ EIP7412 Fix #2
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed on call, we decided to not allow users to execute fulfillOracleQuery
with an arbitrary EIP7412Implementer
address to avoid the possibility of a malicious actor who gains access to a biconomy EOA wallet private key being able to make a reentrant attack on Smart Margin V3 - despite the fact that Smart Margin V3 is in theory reentrant secure.
We decided this based on the principle of erring on the side of paranoia in security related decisions.
Instead we can define the EIP7412Implementer
address as immutable at the smart contract engine level, and provide a different address for the different engines on different chains.
This removes the potential (though extremely unlikely) reentrant attack vector.
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #2 +/- ##
==========================================
+ Coverage 47.91% 50.00% +2.08%
==========================================
Files 9 10 +1
Lines 192 186 -6
Branches 24 20 -4
==========================================
+ Hits 92 93 +1
+ Misses 96 89 -7
Partials 4 4 β View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM π - as long as we are happy that SMv3 is reentrant secure
Summary
Use the
EIP7412
selector forfulfillOracleQuery
and not theIERC7412
selector.Concerns
Given
With
EIP7412Implementer
being variable, does this present a risk?