It's not hypothetical. A friend of mine has created an USB based pen-test tool based on this very idea. The early prototype idea was to open up a mouse, splice a USB hub into the USB connection, then attach an "Arduino like" Teensy[1] to it such that, when the mouse was connected, in addition to the mouse being detected and registered by the host machine, it would also detect and install a new keyboard. The Teensy could then dump it's payload as anything that could be typed on a physical keyboard (subject to the memory limitations of the board).
He's now doing a Kickstarter campaign to manufacture and sell the things, which he calls The Glitch[2]. You can see pictures on the Kickstarter page, of the Glitch embedded in a generic mouse.
[1]: http://www.pjrc.com/teensy/
[2]: http://www.kickstarter.com/projects/1186217328/the-glitch
You should be able to use "accessibility" features to bring up a soft keyboard (or just cut and paste from known things) to run the entire attack as a normal-appearing HID mouse, which just happens to be evil. No need to reconnect via a hub; you could do the whole thing within a mouse controller. Bonus points if you can manage to fit all the logic in the same processor/memory the thing includes by default, or something which looks like the same physical package and thus passes a non-destructive open-device analysis.
(which is kind of terrifying if you think about it; almost no one checks the provenance of "dumb" devices like mice. Keyboards sometimes get a tiny bit more scrutiny due to hardware keyloggers inside inline, but that's about it.)
The ultimate solution is a trusted supply chain and equipment which is tamper-evident, non-counterfeitable, and which can securely attest to intactness and provenance; x9.9 pinpads and hsms. But no one does that for general purpose hardware.
The environment I'm thinking about is something like a SCADA control system for, say, a centrifuge cascade :)
How hard would this part be?
> But surely you could simply test the hardware
Scanning system devices would reveal it pretty quickly if it's just an additional USB device.
Given the prevailing prices for mice and for computer vulnerability researchers, I'd thing buying a new mouse is orders of magnitude cheaper than verifying that a suspect mouse does not contain a threat.
But if you allow arbitrarily complex logic to be present which only activates additional functionality on the presence of an arbitrarily complex trigger, you can no longer proove the existence of this additional logic.
As an example: Maybe my microcontroller passively watches the mouse, and only activates the payload (routes the mouse signals through the USB hub and activates the flash-drive) after a complex sequence of mouse-moves and clicks have been performed? The trigger might be to monkey-train the unsuspecting user with a specifically crafted flash-game on a frequently visited website.
Hypothetically, this is true -- if you disassemble the right kind of mouse, put in a USB hub and a USB flash drive with malware. But surely you could simply test the hardware with a known good installation (say, off a Live CD) to figure out if that was the case?