Let Me Get That Door for You: Remote Root Vulnerability in HID Door Controllers
If you’ve ever been inside an airport, university campus, hospital,
government complex, or office building, you’ve probably seen one of
HID’s brand of card readers standing guard over a restricted area. HID
is one of the world’s largest manufacturers of access control systems
and has become a ubiquitous part of many large companies’ physical
security posture.
Each one of those card readers is attached to a door
controller behind the scenes, which is a device that controls all the
functions of the door including locking and unlocking, schedules,
alarms, etc...
Technical details...
...if we send a Linux command wrapped in backticks, like `id`, it will get executed by the Linux shell on the device. To make matters worse, the discovery service runs as root, so whatever command we send it will also be run as root, effectively giving us complete control over the device.
Since the device in this case is a door controller, having complete control includes all of the alarm and locking functionality. This means that with a few simple UDP packets and no authentication whatsoever, you can permanently unlock any door connected to the controller. And you can do this in a way that makes it impossible for a remote management system to relock it. On top of that, because the discoveryd service responds to broadcast UDP packets, you can do this to every single door on the network at the same time! Needless to say, this is a potentially devastating bug. The Zero Day Initiative team worked with HID to see that it got fixed, and a patch is reportedly available now through HID’s partner portal. more