Le fondateur de OneKey, Yishi, a annoncé que son équipe avait reproduit en laboratoire une attaque de substitution de transaction sur l'application Ledger Ethereum App. L'essence de l'attaque est la suivante : en raison d'une condition de course dans le code, l'attaquant peut substituer une transaction tandis que l'utilisateur regarde encore l'écran. L'utilisateur voit et approuve la transaction A, mais l'appareil signe en réalité la transaction B, qu'il n'a jamais vue.
Le bogue décrit correspond à une vulnérabilité déjà rendue publique le 22 août par le chercheur indépendant TestMachine, et Ledger l'a corrigée dans la version 1.22.2, et non dans la version 1.22.3, comme l'a affirmé Yishi.
Ledger elle-même a confirmé le problème dans le document LSB 023 : certains applications sur le Ledger Secure SDK pouvaient accepter de nouvelles commandes pendant la confirmation à l'écran, ce qui faisait que les paramètres affichés différaient de ceux effectivement signés. Le problème vient du traitement des entrées-sorties dans le SDK, et non dans le firmware de l'appareil. La version 26.6.1 du SDK est sortie le 21 août ; les utilisateurs doivent mettre à jour précisément leurs applications via Ledger Live.
Ledger n'a pas constaté d'exploitation réelle de cette vulnérabilité.
