UniBLEed: Unauthenticated Root RCE on Any Unitree G1 Humanoid Robot Security researcher Boschko published a technical breakdown of UniBLEed, a wormable exploit chain that achieves unauthenticated root remote code execution on any Unitree G1 humanoid robot within Bluetooth range, bypassing Unitree's cloud API, mobile app, and firmware. The research produced two CVEs, CVE-2026-76639 and CVE-2026-76640, and earned a $6,700 bounty from Unitree, which also sent the researcher a G1 robot for the work. UniBLEed: Unauthenticated Root RCE on Any Unitree G1 Humanoid Robot Within Bluetooth Range Root on a $20,000 humanoid robot from Bluetooth range. One chain crossing Bluetooth, Unitreeโ€™s cloud, mobile, and the firmware running the G1 itself. Hereโ€™s the complete technical breakdown of the $6,700 bounty and two CVEs it produced: CVE-2026-76639 / CVE-2026-76640. Root on a $20,000 humanoid robot, via a cloud API that decrypts any G1's AES key from any free Unitree account without checking ownership. One BLE characteristic that accepts writes without pairing. A heredoc injection that hijacks WiFi. A path traversal in the robot's AI chatbot knowledge base that leaks the binary's load address. And a 1050-byte BSS buffer overflow that corrupts the event loop into calling system as root. Below is the complete technical breakdown of a $6,700 bounty and the two CVEs it produced: CVE-2026-76639 / CVE-2026-76640. UniBLEed is wormable, meaning once one G1 is compromised, it can spread the same exploit to the next G1 in range, and so on indefinitely ๐ŸŽ‰. UniPwn was the awesome research that first blew this class of issue wide open and prompted Unitree's initial mitigations. UniBLEed came afterward,through a different chain, and showed thatwormable compromisewas still possible. A $20,000 robot ended up in my living room thanks to the research Ruikai https://x.com/ruikai?ref=boschko.ca and I published in my last blog: From DDS Packets to Robot Shells: Two RCEs in Unitree Robots CVE-2026-27509 & CVE-2026-27510 https://boschko.ca/unitree-go2-rce/ . During that disclosure, we built a good relationship with @cxing and @lxonz , and as payment for the research, the Unitree Security team https://security.unitree.com/?ref=boschko.ca sent a G1 https://www.unitree.com/g1?ref=boschko.ca . Vendors sending robots to researchers is literally unheard of in robotics. I got lucky & I'm very grateful. Quick note: This is probably the most complete piece of independent research I've published. The discoveries happened wildly out of order, so I did my best to reorder everything into something you can actually read from start to finish. My research notes alone are 750+ pages of well-documented psychological decline. This isn't some "magnum opus", but it's likely my last blog . The goal of publishing this research is to pay it forward. There isn't much robotics reverse-engineering stuff floating around. This is me adding water to a very dry well. Hopefully, this motivates more people to publish their own work. Enjoy the readโค๏ธ AI has atrophied the living shit out of my brain ๐Ÿ™ƒ. So when Unitree sent me a G1, having AI hack it for me would've been generationally braindead. I'm happy to announce? That these vulnerabilities areraw-dogging research on a steady diet of Jim Beam and animal crackers.. No AI in the loop Just ~3 months of100% human-found This isn't " 100% AI-free research ". I'm not a sodomite. AI helped me debug DDS/ROS libraries, monkey-patch broken shit, spin up AVDs, splice together POCs, and rewrite all the finalized PoCs. I never used it to find or exploit the G1. I'm saying this isn't a "go find 0-day, no mistakes plz" writeup. But what I'm saying isโ€ฆ AI may have cooked my brain, but baby that really dog is still in me. I'm not anti-AI whatsoever. I just started feeling like a passenger in my own brain. For context, with minimal steering & shit tons of context, I only had to burn down a small rainforest to get DeepSeek-v4-pro to independently discover the full CVE-2026-76639 RCE 1 chain and every bug in the CVE-2026-76640 RCE 2 chain. It also found 27 other vulns I completely missed these might be bullshit vulns, I haven't checked . However , it wasn't able to independently chain together a working BLE exploit ๐Ÿซค? Somehow, weirdly, I'm... pleased? Before you commit to reading, skim the two RCEs and decide how much of your evening you're willing to invest. RCE 1 CVE-2026-76639 chains 3 bugs. It's a cool path traversal in the robot's AI chatbot chat go knowledge base that writes an arbitrary file to bashrunner's whitelist directory, combined with bashrunner's one-time-at-import os.listdir whitelist and its extension-agnostic sh exec. This is triggered through the discovery of the hardcoded AES key that unlocks a WebRTC-to-DDS bridge with no topic allowlist and no participant authentication on CycloneDDS Domain 0 . RCE 2 CVE-2026-76640 is a sexy 5-bug chain. The GATT characteristic 0xFFE2 is registered with bare WRITE permission, so a nearby BLE client can write to it without pairing. The cleartext bootstrap opcode 0xF2 returns the G1's AES-128 key inside an RSA-wrapped four-notification response . Unitree's /device/bindExtData cloud endpoint decrypts that blob for any free "authenticated" Unitree account because it did not verify ownership of the supplied G1 serial number. The recovered key unlocks the AES-backed BLE v3 handshake and the WiFi configuration opcodes. A 121-byte PSK then forces wpa connect.sh into its unsafe manual fallback, where unescaped data in an unquoted heredoc becomes injected wpa supplicant configuration data, forcing the G1 to join the attacker's hotspot. From that network, the chat go to bashrunner chain leaks the btgatt-server PIE base from /proc/