Arbitrary Firmware Injection via Missing Cryptographic Verification
USB VID 10D6 — 12 Product IDs — Multiple Consumer Brands
During hands-on firmware analysis of a consumer music player by our team we found a critical vulnerability discovered in the firmware update mechanism of all devices built on the Actions Semiconductor platform. The update toolchain performs no any cryptographic validation before writing arbitrary firmware to the device!
That means for example an attacker with physical USB access can permanently compromise any affected device with fully custom firmware, with the compromise surviving factory reset.
Our investigation began with an anomalous device behaviour: the Lenco Xemio-860 crashed and performed a full factory reset when loading a music file with an arbitrary long filename. This indicated absent or broken input validation in the file system parser. Rather than treating the crash as a minor annoyance, it was used as an entry point to investigate the full firmware architecture.
The device presents itself as a standard USB mass storage device. A raw disk dump was performed to capture the full 8.4 GB NAND flash image at the block device level:
sudo diskutil unmountDisk /dev/diskX
sudo dd if=/dev/diskX of=xemio860_raw.bin bs=4096 status=progress
Result: 8,376,025,088 bytes captured in approximately 14 minutes at 10 MB/s. The dump produced a complete binary image of the device flash, including all partitions.
We wrote a specific script in order to scan the raw binary for ASCII strings matching firmware-relevant keywords: upgrade, update, firmware, system, version, commaxx, lenco. This scan showed a fully embedded Windows firmware update toolkit at flash offset 0x0265b11c, with all files confirming the SoC vendor as Actions Semiconductor.
The embedded toolkit was stored as a ZIP archive within the flash containing the complete Windows firmware flashing utility:
The Upgrade.ini CONFIG section revealed the complete lack of any security configuration:
FWFILE= ← blank — accepts ANY firmware binary
UISKIN=skin-upgrade
VER00=1.00.01
We noticed that there is no signature field, no checksum parameter, no even hash algorithm, not even an authentication mechanism of any kind. The FWFILE key is blank — the tool accepts any firmware binary the user points it at and flashes it without question. And that's the vulnerability.
strings Production.dll | grep -i 'sign|verify|hash|md5|sha|rsa|aes|encrypt'
Zero firmware-related cryptographic functions found in a 2.57 MB binary. The flashing logic performs no verification whatsoever before writing to the device.
The driver INF file identified the full scope of vulnerable devices. Actions Semiconductor USB Vendor ID 10D6 covers 12 distinct Product IDs, meaning this vulnerability extends across a wide range of budget consumer devices from multiple brands:
Because Production.dll accepts and flashes any firmware binary with no validation, a malicious user with brief physical USB access can achieve all of the following:
An attacker gains brief unattended access to a target executive's desk. Connects the device to a laptop, runs RdiskUpgrade.exe with malicious firmware, completes the flash in under 60 seconds. Modified firmware activates the microphone and writes encrypted audio captures to the SD card. Device looks identical to before.
A malicious actor inside a distribution chain intercepts a batch before delivery. Using the RdiskUpgrade.exe tool already embedded on each device, all units are reflashed and resealed in original packaging. End customers receive devices that appear factory-fresh but execute attacker-controlled code from first power-on.
A rogue USB charging station at an airport or hotel enumerates connected devices and detects Actions Semiconductor VID 10D6 automatically. On detection it initiates a firmware flash without any user prompt. Any user who charges their device leaves permanently compromised. Fully silent, requires no victim cooperation.
Because 12 USB Product IDs share the same Vendor ID and the same unverified update mechanism, a single automated attack tool can identify and reflash any compatible device across dozens of consumer electronics product lines worldwide. Scale of impact extends far beyond the Lenco Xemio-860 specifically.
The following test cases were executed against the Lenco Xemio-860BK running firmware VER00=1.00.01. Each test is independently reproducible on any device sharing Actions Semiconductor VID 10D6.
cat RDiskUpdate/Upgrade.inistrings Production.dll | grep -i 'sign|verify|hash|md5|sha|rsa|aes|encrypt'cat ADFUUpdate.inf | grep VID| dd | Raw NAND flash extraction via USB mass storage interface |
| ByteScan custom script | Binary string scanning, ZIP boundary detection, artifact extraction |
| binwalk | Firmware signature detection, filesystem identification, entropy analysis |
| strings (GNU) | Readable string extraction from PE binaries (DLL/EXE) |
| zipfile — Python stdlib | Reliable ZIP extraction from arbitrary binary offsets |
| Ghidra 11.1.2 | Disassembly platform prepared for deeper static analysis |
Vendor notified: Commaxx B.V. and Lenco Benelux BV — February 24, 2026
CVE submitted: MITRE — February 24, 2026 — pending assignment
90-day disclosure window: in effect
Public disclosure: Regardless of vendor response — May 2026
Full CVE details: bytescan.net/CVE