Rackspace has patched an arbitrary code execution bug in its Windows environment, following an advisory from CloudPassage.
CloudPassage discovered that the Rackspace Windows Agent and Updater allowed unauthenticated users to upload a modified version of the agent binary to Rackspace Cloud Server instances. The modified code would then be treated as a normal update: when the service restarts after the update, an attacker could then execute arbitrary code.
As explained by CloudPassage, the Rackspace-written Windows Agent and Updater handle boot config for Windows guests running on the Xen hypervisor, running as services under the LocalSystem account.
Pre-22.214.171.124 Updater versions allowed unsigned updates using a crafted .NET call to Port 1984 (El Reg presumes the port number is pure coincidence), which sends a .NET serialisable object with a URL and MD5 checksum to the target. The target system would then download a zipfile, check it against the checksum, extract it into the program folder of the Agent service, and restart the service. As its proof-of-concept, CloudPassage used the und3auth tool to put a backdoor into the Agent binary.
The fixed Updater no longer listens on Port 1984, and uses IPC with XenStore. ®