Expand unchecked assembly description
This commit is contained in:
Binary file not shown.
@@ -215,8 +215,14 @@ The contract has a manager mapping, which should be used as a stack.
|
||||
The developer has added the \texttt{setNextManager} function, which should set the top of the stack to the latest user as a manager.
|
||||
The issue is that the function is implemented in such a way, that the stack would not grow, but the first element would always be overwritten - this arises from the fact that the memory slot
|
||||
of the managers mapping does not point to the memory address on the top of the stack, but instead to the base of it.
|
||||
The function is then using this slot address directly, without calculating any offset, overwriting the base of the stack.
|
||||
The function is then using this slot address directly, without calculating any offset, overwriting the base of the stack. If social engineeering is applied, an attacker can persuade the
|
||||
owner to set them as a manager, which would result in the weakness being exploited directly and the owner giving up their own management rights.
|
||||
\subsection{Consequences}
|
||||
|
||||
The consequences of exploiting an arbitrary storage access weakness can be of different types and severity.
|
||||
An attacker may gain read-write access to private contract data, which should only be accessible to owners, maintainers etc.
|
||||
They may also exploit the contract to circumvent authorization checks and drain the contract funds.
|
||||
%TODO: can we expand this?
|
||||
|
||||
\section{Vulnerable contracts in literature}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user