You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 7, 2024. It is now read-only.
sherlock-admin opened this issue
Jul 3, 2023
· 0 comments
Labels
DuplicateA valid issue that is a duplicate of an issue with `Has Duplicates` labelHighA valid High severity issueRewardA payout will be made for this issue
Lack of signature expiration within the verifyPrices and verifyQuotePrices functions
Summary
The lack of signature expiration within the verifyPrices and verifyQuotePrices functions could allow malicious users to use a price signature generated a long time ago (e.g. 1 month ago, 6 months ago) where its symbol prices have already deviated significantly from the current market price to exploit the price differences to extract values/assets from the protocol or its victims.
Vulnerability Detail
The verifyPrices and verifyQuotePrices functions do not verify that the price signature has been generated recently. As a result, a price signature generated a long time ago (e.g. 1 month ago) will still pass the verification.
Without any signature expiration mechanism, the old price signatures where their symbol prices have already deviated significantly from the current market price could be injected into the protocol. Malicious users could potentially exploit the price differences to extract values/assets from the protocol or its victims.
Define the muonLayout.priceValidTime timeout and implement the following validation check within the affected functions to ensure that only price signatures generated recently are accepted.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
DuplicateA valid issue that is a duplicate of an issue with `Has Duplicates` labelHighA valid High severity issueRewardA payout will be made for this issue
xiaoming90
high
Lack of signature expiration within the
verifyPrices
andverifyQuotePrices
functionsSummary
The lack of signature expiration within the
verifyPrices
andverifyQuotePrices
functions could allow malicious users to use a price signature generated a long time ago (e.g. 1 month ago, 6 months ago) where its symbol prices have already deviated significantly from the current market price to exploit the price differences to extract values/assets from the protocol or its victims.Vulnerability Detail
The
verifyPrices
andverifyQuotePrices
functions do not verify that the price signature has been generated recently. As a result, a price signature generated a long time ago (e.g. 1 month ago) will still pass the verification.https://github.com/sherlock-audit/2023-06-symmetrical/blob/main/symmio-core/contracts/libraries/LibMuon.sol#L50
https://github.com/sherlock-audit/2023-06-symmetrical/blob/main/symmio-core/contracts/libraries/LibMuon.sol#L70
Impact
Without any signature expiration mechanism, the old price signatures where their symbol prices have already deviated significantly from the current market price could be injected into the protocol. Malicious users could potentially exploit the price differences to extract values/assets from the protocol or its victims.
Code Snippet
https://github.com/sherlock-audit/2023-06-symmetrical/blob/main/symmio-core/contracts/libraries/LibMuon.sol#L50
https://github.com/sherlock-audit/2023-06-symmetrical/blob/main/symmio-core/contracts/libraries/LibMuon.sol#L70
Tool used
Manual Review
Recommendation
Define the
muonLayout.priceValidTime
timeout and implement the following validation check within the affected functions to ensure that only price signatures generated recently are accepted.Duplicate of #113
The text was updated successfully, but these errors were encountered: