According to Andrew Balsa, around the time of the discovery of the
F00F bug on
Intel Pentium, Serguei Shtyliov from
Moscow found a flaw in a
Cyrix processor while developing an
IDE disk driver in
assembly language. Alexandr Konosevich, from
Omsk, further researched the bug and coauthored an article with Uwe Post in the
German technology magazine ''
c't'', calling it the "hidden CLI bug" (CLI is the instruction that disables
interrupts in the
x86 architecture). Balsa, as a member on the
Linux kernel mailing list, confirmed that the following
C program (which uses inline
x86-specific
assembly language) could be compiled and run by an
unprivileged user: unsigned char c[4] = {0x36, 0x78, 0x38, 0x36}; int main() { asm ( " movl $c, %ebx\n" "again: xchgl (%ebx), %eax\n" " movl %eax, %edx\n" " jmp again\n" ); } Execution of this program renders the processor completely useless until it is rebooted, as it enters an
infinite loop that cannot be
interrupted. This allows any user with access to a Cyrix system with this bug to perform a
denial-of-service attack. It is similar to execution of a
Halt and Catch Fire instruction, although the coma bug is not any one particular instruction. == Analysis ==