New Samsung laptops that destroyed themselves when booting Ubuntu Linux can be bricked by ANY operating system – including Windows – according to a top embedded developer.
Nebula programmer Matthew Garrett has shed new light on a baffling bug that renders shiny Sammy computers completely unusable by accident, and blamed the flaw on Samsung's firmware – the built-in software that powers up the machine.
The models at risk are the 300E5C, NP700Z5C, NP700Z7C, and 530U3C series of Sammy PC laptops.
At first the fault was tracked down to a Linux kernel hardware driver that was quickly disabled by developers to protect users' machines when booting open-source Linux. Greg Kroah-Hartman, who built the Samsung-laptop driver with Samsung's help, advised people to "blacklist" the kernel module to avoid any heartbreak.
But Garrett took to his personal blog on Friday night to urge people to boot their Samsung laptops in old-fashioned BIOS mode rather than the new UEFI standard, regardless of their OS choice, to avoid catastrophe. He said motherboard death could be caused by any code, not just Linux, that tries to write to the firmware's built-in storage area.
He wrote of the firmware-destroying flaw: "The information we now have indicates that there are other ways of triggering this."
According to Garrett, the disastrous bug is set off by writing too much information to the UEFI firmware's variables space, which causes a fatal error after a restart.
It is understood that Linux, when installing itself on the vulnerable laptops, triggers an exception and writes "too much" diagnostic data to the firmware's memory. According to the UEFI specification, it should not be possible to kill a computer by trying to storing too much information in the firmware but Sammy's hardware manages to do just that.
Microsoft's Windows could therefore potentially trip up just like Linux if it's not too careful: the open-source OS dumps 10KB of data into the firmware if the machine completely crashes. Windows 8 expects to be able to write 64KB into this variables storage area. But Garrett said he was able to brick his laptop by writing just 36KB to the Samsung UEFI from Windows.
"It also seems likely that it's possible for a user-space application to cause the same problem under Windows," Garrett added, providing a proof-of-concept program with source code to show he could ruin his machine from Windows. He said he ran the program "as an administrator under Windows and then rebooted the system. It never came back".
Garrett, who works as a power management, mobile and firmware developer on Linux, said more work is being done to figure out the full details. ®