Selon l'analyse de l'équipe de sécurité de Beosin, la cause première de l'attaque contre le projet JPEG était une attaque de réentrée, entraînant des pertes d'au moins environ 10 millions de dollars. Lorsque l'attaquant appelle la fonction remove_liquidity pour supprimer des liquidités, il ajoute de la liquidité en rentrant dans la fonction add_liquidity. Puisque le solde est mis à jour avant de rentrer dans la fonction add_liquidity, une erreur se produit dans le calcul du prix.

