- The title given to this article is incorrect due to technical limitations. The correct title is f00f.
f00f, (pronouced foof), a Contraction of 0xf00fc7c8, is the hexadecimal encoding of an instruction that exhibits a design flaw in the majority of Intel Pentium, Pentium MMX, and Pentium OverDrive processors.
Intel calls this issue the "invalid operand with locked CMPXCHG8B instruction".
Description
In at&t syntax, the instruction represents
lock cmpxchg8b %eax
Note that the operand must be a register, but technically does not have to be eax
The cmpxchg8b instruction is used to compare the value in the edx and eax registers with an 8 byte value at some memory location. In this example a 4 byte register is used as the destination operand, which would not be big enough to store the 8 byte result.
In normal circumstance, this would simply result in an exception, however when used with the lock prefix (normally used to prevent two processors from interfering with the same memory location), the exception handler is never called, the processor stops servicing interrupts and the system must be rebooted.
The instruction does not require any special privileges, and due to the proliferation of intel microprocessors, was considered a serious issue at the time. Operating System vendors reponded by implementing workarounds that detected the condition and prevented the crash.
Although technically not an example of either, the f00f is often considered an hcf instruction, or a killer poke. Since the f00f bug has become common knowledge, the term is sometimes used to describe similar hardware design flaws, such as the cyrix coma bug.
No permanent damage would result from executing the f00f instruction on a vulnerable system, although depending on filing system, operating system, and other circumstances, if the disk buffers had not been flushed, any drives were interrupted during a write operation, or some other non atomic operation was interrupted, it's possible for data loss to occur.
Although it is almost universally accepted that the bug is a result of design flaw rather than a backdoor, some conspiracy theorists have noted the coincidental foo prefix, a well known term in hacker jargon.
No Intel processors since the introduction of the Pentium Pro have been affected by the bug.
See also
External links
|