Expand unchecked assembly description

This commit is contained in:
Ivaylo Ivanov
2023-10-28 16:44:49 +02:00
parent 09fc053cf6
commit e0bffaf8fe
2 changed files with 7 additions and 1 deletions
Binary file not shown.
+7 -1
View File
@@ -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 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 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. 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} \section{Vulnerable contracts in literature}