This repository has been archived by the owner on Oct 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
xiaoming90 - Signature is malleable #279
Labels
Has Duplicates
A valid issue with 1+ other issues describing the same vulnerability
Medium
A valid Medium severity issue
Reward
A payout will be made for this issue
Sponsor Confirmed
The sponsor acknowledged this issue is valid
Won't Fix
The sponsor confirmed this issue will not be fixed
Comments
github-actions
bot
added
Medium
A valid Medium severity issue
Has Duplicates
A valid issue with 1+ other issues describing the same vulnerability
labels
May 6, 2024
This was referenced May 6, 2024
Closed
Closed
ZdravkoHr. -
TitlesGraph
signatures are replayable because of a compact signature vulnerability
#369
Closed
This seems to be a duplicate of #273 @Hash01011122 |
sherlock-admin3
added
Sponsor Confirmed
The sponsor acknowledged this issue is valid
Will Fix
The sponsor confirmed this issue will be fixed
labels
May 8, 2024
Hash01011122
added
Duplicate
A valid issue that is a duplicate of an issue with `Has Duplicates` label
and removed
Has Duplicates
A valid issue with 1+ other issues describing the same vulnerability
labels
May 12, 2024
sherlock-admin2
changed the title
Winning Scarlet Yeti - Signature is malleable
xiaoming90 - Signature is malleable
May 12, 2024
@WangSecurity add #130, #10 to that list, they are currently incorrectly dupes of #273 which is a dos/frontrunning issue |
Evert0x
added
Has Duplicates
A valid issue with 1+ other issues describing the same vulnerability
and removed
Duplicate
A valid issue that is a duplicate of an issue with `Has Duplicates` label
labels
May 17, 2024
This was referenced May 17, 2024
Thank you! |
sherlock-admin3
added
Won't Fix
The sponsor confirmed this issue will not be fixed
and removed
Will Fix
The sponsor confirmed this issue will be fixed
labels
May 25, 2024
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
Has Duplicates
A valid issue with 1+ other issues describing the same vulnerability
Medium
A valid Medium severity issue
Reward
A payout will be made for this issue
Sponsor Confirmed
The sponsor acknowledged this issue is valid
Won't Fix
The sponsor confirmed this issue will not be fixed
xiaoming90
medium
Signature is malleable
Summary
The signature is malleable. When a signature is malleable, it means that it is possible to produce another valid signature for the same message (which also means the same digest).
If the intention is only to allow the creator to acknowledge an edge once, the creator can bypass this restriction because the signature is malleable, and the creator can create another signature to acknowledge an edge again.
Vulnerability Detail
The protocol relies on Solady's
SignatureCheckerLib
to verify that the signature provided is valid. Once a signature has been successfully verified, it will be marked as used in Line 49 below to prevent users from re-using or replaying the same signature.The Solady's SignatureCheckerLib warns that the library does not check if a signature is non-malleable.
https://github.com/Vectorized/solady/blob/a34977e56cc1437b7ac07e6356261d2b303da686/src/utils/SignatureCheckerLib.sol#L23
Based on the following code, a creator can only acknowledge an edge once because the digest of the signature to acknowledge an edge will be the same (assuming that
data
is not in use) every time. After a creator acknowledges an edge, the signature (which also means its digest) will be marked as used in Line 49 below, thus preventing the creator from acknowledging the edge again later using the same signature.https://github.com/sherlock-audit/2024-04-titles/blob/main/wallflower-contract-v2/src/graph/TitlesGraph.sol#L49
Impact
When a signature is malleable, it means that it is possible to produce another valid signature for the same message (which also means the same digest).
If the intention is only to allow the creator to acknowledge an edge once, the creator can bypass this restriction because the signature is malleable, and the creator can create another signature to acknowledge an edge again.
Code Snippet
https://github.com/sherlock-audit/2024-04-titles/blob/main/wallflower-contract-v2/src/graph/TitlesGraph.sol#L49
Tool used
Manual Review
Recommendation
Consider verifying the
s
of the signature is within valid bounds to avoid signature malleability.The text was updated successfully, but these errors were encountered: