Eclypsium is a firmware security player, and it has found some vulnerabilities in the Supermicro X9, X10 and X11 platform of servers that can, as Eclypsium puts it in a blog post, "allow an attacker to easily connect to a server and virtually mount any USB device of their choosing to the server, remotely over any network including the Internet."
The baseboard management controllers (BMCs) of these servers are supposed to allow administrators to perform "out-of-band" management of a server, usually remotely. They are highly privileged components because of the depth of tasks that they are asked to perform.
A scan of TCP port 623 across the Internet revealed 47,339 BMCs from over 90 different countries with the affected virtual media service publicly accessible.
The blog states the Supermicro implementation of the BMC is substandard (OK, it's a sloppy one). As they put it in the blog, "the platforms implement virtual media, an ability to remotely connect a disk image as a virtual USB CD-ROM or floppy drive. When accessed remotely, the virtual media service allows plaintext authentication, sends most traffic unencrypted, uses a weak encryption algorithm for the rest, and is susceptible to an authentication bypass. These issues allow an attacker to easily gain access to a server, either by capturing a legitimate user's authentication packet, using default credentials, and in some cases, without any credentials at all."
Those are some major attack vulnerabilities, to be sure.
Once it has been connected, the virtual media service allows the attacker to interact with the host system as a raw USB device. Eclypsium said in the blog that, "This means attackers can attack the server in the same way as if they had physical access to a USB port, such as loading a new operating system image or using a keyboard and mouse to modify the server, implant malware, or even disable the device entirely."
They found four major holes in how the BMC was done by Supermicro.
Plaintext authorization was in use. Although the Java application uses a unique session ID for authentication, the service also allows the client to use a plaintext username and password.
Network traffic was not ensured by default to be encrypted. Encryption is available but must be requested by the client. The vulnerable Java application will use this encryption for the initial authentication packet but then use unencrypted packets for all other traffic.
Even if enabled, the payload is encrypted with RC4 using a fixed key compiled into the BMC firmware. This key is shared across all of the Supermicro BMCs. RC4 has multiple cryptographic weaknesses and is not considered to be secure.
Finally, the X10 and X11 platforms had an authentication bypass because some of the BMC’s internal state about a client is incorrectly left intact upon disconnection. If a new client is assigned the same socket file descriptor number by the BMC’s OS, it will inherit this internal state. This can allow a new client to inherit the previous client’s authorization even when the new client attempts to authenticate with incorrect credentials.
Supermicro has committed to Eclypsium that it will be providing firmware updates for their X9, X10 and X11 platforms. Software patches can be found here.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.