Een onderzoeker heeft een kwetsbaarheid in de Nano S-hardwarewallet van Ledger en mogelijk ook de Blue-variant gevonden die verschillende aanvallen mogelijk maakt, zoals het aanbrengen van een backdoor die de seeds voor het genereren van privésleutels van tevoren vastlegt.
De onderzoeker, die Saleem Rashid heet en naar eigen zeggen 15 jaar oud is, heeft zijn bevindingen in een blogpost samengevat. Daarin schrijft hij dat het mogelijk is om via een exploit de zogenaamde seed aan te passen die normaal gesproken gebruikt wordt om een privésleutel aan te maken, waarmee gebruikers hun cryptovaluta kunnen beheren. Rashid heeft poc-code op GitHub geplaatst, die uit veiligheidsoverwegingen niet echt te gebruiken is. Het idee is volgens Rashid dat controle over de seed, die bestaat uit 24 verschillende woorden, ten grondslag ligt aan de generatie van de privésleutel. Door van tevoren aanpassingen door te voeren aan de firmware, zou het volgens de onderzoeker mogelijk zijn om privésleutels in handen te krijgen. Zijn scenario gaat uit van een malafide verkoper van de hardwarewallets.
Rashid beschrijft dat de kwetsbaarheid met het ontwerp van de Nano S- en de Blue-hardwarewallet te maken heeft, waarbij die laatste dezelfde werking zou hebben als de onderzochte Nano S. Zo is er sprake van een architectuur op basis van twee chips: één beveiligde ST31H320-chip als Secure Element en een andere, onbeveiligde STM32F042K6-mcu die met de veilige chip in verbinding staat, het scherm en de knoppen aanstuurt, en een usb-verbinding mogelijk maakt.
De veilige chip slaat in dit geval de privésleutels op. Dit maakt het volgens Rashid mogelijk om de firmware op de mcu aan te passen, die vervolgens weer door de veilige chip geverifieerd moet worden. Het probleem is dat ook een mcu met aangepaste firmware kan doen alsof er geen aanpassingen hebben plaatsgevonden om zo het Secure Element te misleiden. Cryptograaf Matthew Green reageerde op de blogpost van Rashid door te stellen dat dit een probleem is dat zich vaker voordoet in embedded devices.

Om tegen aanpassingen te beschermen, heeft het Franse bedrijf Ledger de mcu voorzien van beperkte opslag om het moeilijker te maken om een aanval uit te voeren. Zo zou een aanvaller namelijk de kwaadaardige firmware naast de legitieme variant op moeten slaan om het Secure Element voor de gek te houden. De onderzoeker vond hier echter een oplossing door middel van code caving, door zijn kwaadaardige code in overbodige compiler instrinsics te plaatsen.
Omdat het niet mogelijk is het Secure Element direct aan te vallen, richtte Rashid zich op het aanpassen van de user interface op het apparaat zelf, dat de woorden toont die de seed vormen voor de privésleutel en die als back-up dienen voor de gebruiker. Hij demonstreert hoe deze van te voren in te stellen zijn in een video. Daarin is voor demonstratiedoeleinden te zien dat 23 keer het woord 'abandon' wordt getoond en ten slotte het woord 'art'.
Ledger heeft een eigen blogpost aan de ontdekking gewijd, waarin het zegt dat er een update is uitgebracht om tegen de aanval te beschermen. Daarin zegt het bedrijf bovendien dat de aanval geen seed of privésleutels prijsgeeft, doordat 'het voor de gek houden van de mcu geen gevolgen heeft voor het Secure Element'. Bovendien zou een dergelijke aanval gedetecteerd worden op het moment dat het apparaat via Ledger Manager verbinding maakt met de servers van het bedrijf. Als tegenmaatregel heeft Ledger de mcu-firmware geoptimaliseerd en opnieuw ingedeeld, zodat deze specifieke aanval niet meer mogelijk is. Bovendien houdt het Secure Element de timing van de mcu bij om het gebruik van compressie tegen te gaan. Rashid plaatst zijn vraagtekens bij deze oplossing en ook Green zegt tegen Ars Technica dat deze het probleem misschien niet helemaal verhelpt.
Volgens de site is de aanval opvallend, omdat Ledger claimt dat zijn apparaten beveiligd zijn tegen aanpassingen. Zo voegt het een flyer aan zijn apparaten toe waarop staat dat er geen beveiligingsstickers op de doos zitten, juist vanwege deze bescherming. Ook is het van mening dat zijn apparaten veilig genoeg zijn om ze via derde partijen te laten verkopen. Rashid meldde zijn bevindingen in november aan Ledger, maar wilde niet deelnemen aan het bugbounty-programma zodat hij zijn werk openbaar kon maken. Momenteel zou er alleen een update zijn uitgebracht voor de Nano S en niet voor de Blue-variant. De Ledger Nano S ondersteunt verschillende cryptovaluta, zoals bitcoin en ether, en stelt gebruikers in staat om transacties handmatig goed te keuren.