mirror of
https://etulab.univ-amu.fr/v18003685/pfe-blockchain.git
synced 2024-02-26 02:14:01 +01:00
typos
This commit is contained in:
@ -23,7 +23,7 @@ Pour contourner cette étape de récupération des signatures la transaction de
|
||||
Seulement, n'étant pas pour la bonne opération cet ensemble ne peut pas être approuvé par \texttt{verify\_signature}.
|
||||
C'est ici que l'attaquant à utilisé un défaut d'implémentation pour valider son \textit{SignatureSet}.
|
||||
Comme décrit précédemment, la fonction \texttt{verify\_signature} appelle un programme pour effectuer la vérification des signatures.
|
||||
Cependant il n'y à pas de vérification faites sur le programme appelé, l'attaquant à pu donc utiliser une adresse différente lui permettant de valider sa transaction.
|
||||
Cependant il n'y a pas de vérification faites sur le programme appelé, l'attaquant à pu donc utiliser une adresse différente lui permettant de valider sa transaction.
|
||||
Avec le \texttt{SignatureSet} ainsi validé, l'attaquant a pu générer un \textit{VAA} valide et pu déclencher une création d'\gls{actif} vers son propre compte sans en avoir déposé au préalable.
|
||||
La correction de cette faille était contenue dans la mise à jour évoquée en début de paragraphe\cite{SolGitFixed}, permettant la vérification du programme appelé pour la vérification.
|
||||
|
||||
@ -55,11 +55,11 @@ En analysant l'application \textit{Réplica} après la mise à jour, nous pouvon
|
||||
|
||||
Dans les lignes précédentes nous observons cette affectation : \texttt{confirmAt[\_commitedRoot] = 1}, le rôle de cette ligne est de pré-approuver la racine d'un message.
|
||||
Cette fonction est utilisée pour approuver le premier message lors du déploiement du contrat sur une \textit{\gls{blockchain}}.
|
||||
Or ici, la valeur de la racine à été initialisée a $0$, donc cette racine devient une racine valide pour la fonction de vérification des messages.
|
||||
Or ici, la valeur de la racine a été initialisée à $0$, donc cette racine devient une racine valide pour la fonction de vérification des messages.
|
||||
Seulement comme nous l'avons énoncé précédemment, $0$ est la valeur par défaut pour un message n'ayant pas encore été vérifié.
|
||||
Ainsi, lors de l'émission d'un message par la fonction \texttt{process}, tout message non vérifié sera envoyé.
|
||||
Cette erreur d'implémentation a permis à des pirates d'effectuer plusieurs transactions frauduleuses et de retirer l'équivalent de 190 Millions de dollars dans la réserve de liquidité du bridge de \gls{Nomad}.
|
||||
Le contrat à été corrigé, dans une mise en ligne datant du 3 Septembre 2022, tel que la racine $0$ n'est plus pré-approuvée.
|
||||
Le contrat a été corrigé, dans une mise en ligne datant du 3 Septembre 2022, tel que la racine $0$ n'est plus pré-approuvée.
|
||||
|
||||
\begin{lstlisting}[caption={Fonction corrigée de l'application \textit{Réplica} \cite{NomadGitFixed}}]
|
||||
function initialize(
|
||||
|
Reference in New Issue
Block a user