Slashdot Mirror


Theo de Raadt Details Intel Core 2 Bugs

Eukariote writes "Recently, Intel patched bugs in its Core 2 processors. Details were scarce; soothing words were spoken to the effect that a BIOS update is all that is required. OpenBSD founder Theo de Raadt has now provided more details and analysis on outstanding, fixed, and non-fixable Core 2 bugs. Some choice quotes: 'Some of these bugs... will *ASSUREDLY* be exploitable from userland code... Some of these are things that cannot be fixed in running code, and some are things that every operating system will do until about mid-2008.'"

35 of 442 comments (clear)

  1. Yay AMD by delt0r · · Score: 4, Funny

    Thank God I got a AMD this time around.

    --
    If information wants to be free, why does my internet connection cost so much?
    1. Re:Yay AMD by BosstonesOwn · · Score: 5, Informative
      I don't think that is a good thing either. It looks like AMD may be doing this as well.

      (While here, I would like to say that AMD is becoming less helpful day
      by day towards open source operating systems too, perhaps because
      their serious errata lists are growing rapidly too).
      --
      This package Does Not Contain a Winner
    2. Re:Yay AMD by Idaho · · Score: 5, Interesting

      Except that if you read what Theo has to say, he doesn't have kind words for AMD either.


      Wake me up when Theo has kind words to say about basically anything at all, now *that* would be news!

      Unfortunately he's likely also right on most accounts though :(
      --
      Every expression is true, for a given value of 'true'
    3. Re:Yay AMD by TheRaven64 · · Score: 5, Informative
      SPARC is doing very well for certain categories of workload, although mainly web-app types at the moment. Most computers sold these days have some form of ARM chip[1], which is a nice, low-power architecture, but lacks floating point. This isn't a huge problem, since a lot of ARM designs (particularly those from TI) have a DSP on die which can seriously out-perform a general purpose CPU for a lot of FPU-heavy workloads.

      For general-purpose usage, the most interesting design I've seen recently is the PWRficient from P.A. Semi. It's a nice dual-core 64-bit PowerPC, with low power usage, similar performance to IBM's PowerPC 970 series. It has a lot of nice stuff on-die (crypto, a really shiny DMA architecture, etc).

      For a complete round-up of current alternatives, take a look at this article and the next two in the series.


      [1] They are generally marketed as 'cell phones' or similar, rather than 'computers'.

      --
      I am TheRaven on Soylent News
    4. Re:Yay AMD by Bill,+Shooter+of+Bul · · Score: 4, Funny

      He does have kind words about open bsd. ... Sometimes.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    5. Re:Yay AMD by Tony+Hoyle · · Score: 5, Insightful

      You'd be surprised - there are all sorts of gotchas on different platforms... different OS library support, different word length, different byte orders, alignment issues, etc. then at the OS level you have path separators (/,\,.,:,whatever plus existence of drives eg SYS$SYSTEM:[00000] is a path on VMS, C:\ is a path on Windows - and not all filesystems support paths in the sense Unix does anyway, Character set assumptions (you can't assume the platform supports utf8, or even ASCII), Case sensitivity, Character set sensitivity, etc.

      No code (except assembler) is CPU specific.. you can compile an average (well written) C app on pretty much anything with a C compiler, but it's often unknowningly architecture /OS specific - until you've been through the pain of translating to an entirely different OS (HPUX is fun, VMS is even more fun, or for *lots* of fun try OS/360) it's difficult to know - and that goes for any language, including Java (which mitigates some of the issues but by no means all of them.. not to mention the jvm isn't available on many platforms).

    6. Re:Yay AMD by kestasjk · · Score: 5, Interesting

      Wake me up when Theo has kind words to say about basically anything at all, now *that* would be news!

      Unfortunately he's likely also right on most accounts though :( I'd like to wait to see if this actually affects anything at all before pulling a Theo and forking a project out of spite.

      Theo talks a lot about "potential" security problems. There are 50-60 bugs and he'd "bet" that there are 2-3 "potentially exploitable" bugs. Hmmm. Just in case we've forgot how Theo deals with "potentially exploitable" bugs when they're in his own code:

      # 2007-02-28: OpenBSD team indicates that the bug results in corruption of mbuf chains and that only IPv6 code uses that mbuf code, there is no user data in the mbuf header fields that become corrupted and it would be surprising to be able to run arbitrary code using a bug so deep in the mbuf code. The bug simply leads to corruption of the mbuf chain.
      # 2007-03-05: Core develops proof of concept code that demonstrates remote code execution in the kernel context by exploiting the mbuf overflow.
      # 2007-03-05: OpenBSD team notified of PoC availability.
      # 2007-03-07: OpenBSD team commits fix to OpenBSD 4.0 and 3.9 source tree branches and releases a "reliability fix" notice on the project's website. He downplays them, just like he accuses everyone else of doing. He hates it when people call things vulnerabilities when they don't have PoC code (and even when they do), but he's happy to spread FUD about other products without any evidence that anything is exploitable.


      Getting back to the problem itself. This is a problem in the MMU, a "show stopper", "buggy as hell", they "scare the hell" out of him. But hasn't Core 2 been out for a while now? Hasn't anyone noticed these terrible bugs? Where are all the reports of misbehaving programs and crashes that should have appeared since Core 2's release 11 months ago?

      More likely Theo is leaping at the opportunity to spread FUD about a company that isn't sharing information with him. All processors have bugs; they're incredibly complicated devices. AMD has them, IBM has them, Atmel has them, etc. But they're rarely very serious, they rarely actually affect anything in remotely realistic scenarios.
      Until Theo, or anyone, can actually show that these bugs are dangerous and are going to do some damage in a realistic scenario why should we care?

      What is Theo adding to this anyway? Intel released the errata to everyone, Theo isn't exposing anything. Theo chimes in with how he's quivering with fear, how they could "potentially be exploitable", and how he "bets" Intel has more errata that they're not telling him.
      Raving lunatics like Theo are totally counter productive. How does he expect Intel to respond? "Thanks for telling your flock not to buy our processors, now here are those detailed driver specifications you've been bugging us for!"
      --
      // MD_Update(&m,buf,j);
  2. Intel chips by supersnail · · Score: 4, Funny

    .. not intel compatable.

    Ask for your money back folks!

    --
    Old COBOL programmers never die. They just code in C.
  3. Good stuff. by AltGrendel · · Score: 4, Insightful

    I always find Mr. De Raadt's comments an interesting read. He's like a geek version of Harlan Ellison.

    --
    The simple truth is that interstellar distances will not fit into the human imagination

    - Douglas Adams

    1. Re:Good stuff. by Lisandro · · Score: 5, Informative

      Same here. The guy might seem like a bit of an asshole sometimes, but he surely knows what he's talking about. Some of the things he points out are plain unbelievable:

      Basically the MMU simply does not operate as specified/implimented in previous generations of x86 hardware. It is not just buggy, but Intel has gone further and defined "new ways to handle page tables" (see page 58).

      Some of these bugs are along the lines of "buffer overflow"; where a write-protect or non-execute bit for a page table entry is ignored. Others are floating point instruction non-coherencies, or memory corruptions -- outside of the range of permitted writing for the process -- running common instruction sequences.


      It will be interesting to see what Intel has to say about this.

    2. Re:Good stuff. by suv4x4 · · Score: 4, Funny

      Some of these bugs are along the lines of "buffer overflow"; where a write-protect or non-execute bit for a page table entry is ignored. Others are floating point instruction non-coherencies, or memory corruptions -- outside of the range of permitted writing for the process -- running common instruction sequences.

      It will be interesting to see what Intel has to say about this.


      Yea! Damn, where's the Intel Opinion Center exactly when you need it!

  4. Re:Summary sucks, someone please provide better on by Aladrin · · Score: 4, Informative

    Sure:

    Some of the bugs are so dangerous that it doesn't matter WHAT operating system you're running, code could be written that could attack the entire system. It would still be OS-specific code, but since the exploit is in the hardware, it's a LOT harder to prevent the attack, if it's even possible.

    Some of the bugs are unfixable, as well. (I assume they mean without physcially replacing the chip with a 'fixed' one that doesn't exist yet.)

    --
    "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  5. Re:Summary sucks, someone please provide better on by Hurga · · Score: 5, Funny

    can someone at slashdot please provide an "english" translation of the problems and how dangerous they are to normal users?

    "We don't have the complete picture yet, but things look bad"

    Hanno

  6. Re:How hard is it to get right? by ardor · · Score: 4, Informative

    Actually we are talking about VHDL. The "million transistors" argument is just as appropiate as saying "software is so large, it has so many ones and zeros". Development does not happen at this low stage.

    --
    This sig does not contain any SCO code.
  7. Shock Felt Round the World by N8F8 · · Score: 4, Interesting

    Coming from the government sector, this kind of issue isn't going to be taken lightly. I work at a DoD facility and all our machines were just refreshed with Core 2 Duo machines. It is already almost impossible to get new software approved, if this causes the same paranoia for basic commodity hardware we're really gonna feel some pain.

    --
    "God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
  8. Re:How hard is it to get right? by SatanicPuppy · · Score: 4, Funny

    What is a bug but an undocumented feature?

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
  9. Re:Time for RISC? by Viv · · Score: 4, Insightful

    The market resoundingly rejected that idea when Intel tried to hoist IA64 on it.

  10. Re:Intentional? by Slashcrap · · Score: 5, Insightful

    There seem to be intentional modifications in there.

    Unprovable conjecture. Why would Intel make this public if they were?

    Could that be a backdoor and a good reason for countries like China to develop their own CPUs?

    Are you the same freak that posted on KernelTrap about how every CPU since the 486 has been bugged by the NSA and can be monitored by satellites? If so, please carry out the recommended course of action that I detailed to you on that occasion. Namely that you set fire to yourself outside the UN building in order to draw attention to your cause. Thanks in advance.

  11. Re:How hard is it to get right? by imgod2u · · Score: 5, Insightful

    Yes and no. There are limitations to HDL's (and Intel, last I heard, was all Verilog). For one, it is *very* difficult, if not impossible in certain situations, to describe asynchronous signals. With something as complicated as a microprocessor that is so aggressively designed for both power and speed, I would guess that they didn't go with a completely synchronous design (hell, no one does anymore). Locally synchronous, globally asynchronous design has been in use for a while. It helps when you want to be able to shut off, or slow down, only parts of the chip that aren't being used very much.

    It is not possible to describe such things (let alone voltage islands, voltage scaling) in an HDL language and they must either be a special feature built into synthesis (with an extra set of constraints) or done by hand at the transistor/gate level.

    Then there's the point of verification. Every software release since about the mid-1990's has almost been immediately followed by patches. Just because it's "1's and 0's" does not mean that it doesn't get harder to detect corner cases as complexity grows. And it's much more difficult if you have to simulate on a cycle-accurate model (boot-up for an operating system, in simulation, would take a day on a nice cluster on something as big as the Core 2).

    Then there's post-synthesis/layout issues. Timing analysis do best on sequential logic (completely synchronous). When you throw in clock gating, multiple voltage islands, dynamic voltage scaling (meaning dynamic gate delays), not to mention the plethora of other techniques that those folks might be doing, what you see in simulation at the RTL level will not match what you see in reality. First rule they ever teach in any ASIC design class is never trust simulation.

    The point is that abstraction, like how it's "vhdl", does not mean that it's not difficult to get right and even sometimes impossible to be certain.

  12. Quantum effects? by DFDumont · · Score: 5, Interesting

    My favorite errata in the list is AI22, Sequential Code Fetch to Non-canonical Address May have Nondeterministic Results. Basically the chip decides that all of the high oreder bits should be '1', instead of '0' - for no apparent reason as its not consistent.
    Did anyone notice these chips are using the 65nm process?
    At what point do the shear quantum affects overcome the deterministic EE rules that are used to design the chips? I don't know, but wikipedia defines a nanoparticle as one with at least one dimension less than 100nm. http://en.wikipedia.org/wiki/Nanoparticle
    Given that definition every transistor's source, drain and gate are nanoparticles. And we expect them to behave classically why?

  13. VHDL for voting machines by martyros · · Score: 4, Insightful

    So perhaps the NY law requiring software for voting machines to be held in escrow should include the chip layout as well...

    --

    TCP: Why the Internet is full of SYN.

  14. Re:How hard is it to get right? by TheGratefulNet · · Score: 4, Informative

    AMD64 doesn't like FreeBSD 6.2 at all

    % uname -a
    FreeBSD myhost.grateful.net 6.2-STABLE FreeBSD 6.2-STABLE #0: Mon May 28 09:52:28 PDT 2007 me@myhost.grateful.net:/usr/obj/usr/src/sys/AMD64 i386

    granted, I'm using 32bit mode - but I've been running 6.2 for as long as its been out and my 'always on' freebsd box. what issues are you seeing? this is my production box - but I don't see any problems with bsd. in fact, I also have 6.2 running with an old amd64 3000+ that was a mobile chip and had to have cpufreq enabled just to move it off its default 800mhz and up to the 2.mumble ghz that its supposed to clock at. works fine.

    I have seen some hardware devices not behave well but often its not a well designed piece of hardware or its just not meant for server style loads (cheap consumer onboard sata sometimes times out and usb2.0 always times out if you give it enough load).

    I can't speak to amd64 USING 64bit mode, but 32bit mode works as well as (or better) than linux on headless style computing.

    --

    --
    "It is now safe to switch off your computer."
  15. Linus doesn't think it's a big deal. by davebert · · Score: 5, Informative
  16. Re:Summary sucks, someone please provide better on by swillden · · Score: 5, Informative

    Some of the bugs are so dangerous that it doesn't matter WHAT operating system you're running, code could be written that could attack the entire system. It would still be OS-specific code, but since the exploit is in the hardware, it's a LOT harder to prevent the attack, if it's even possible.

    Here's a little more detail, based on my (very incomplete) understanding of the issues:

    It appears that Intel has made changes to the way the memory management unit in the processor works, plus there are also some bugs that affect memory management. So what does that mean?

    • Theo mentions changes in how TLB flushes must be handled. Translation Lookaside Buffers (TLBs) are tables where operating systems cache information used to quickly determine what physical memory page corresponds to a given virtual memory page. Each running process has it's own address space (meaning the data at address, say, 1000, is different for each process) and operating systems have to be able to quickly translate these virtual addresses to addresses within the physically-available RAM. The authoritative data on the mapping is in a set of data structures called the "page table", but the processors provide a mechanism for creating and managing TLBs which act as a high-performance cache of part of the page table data. Failing to properly flush the TLBs during a context switch (putting one process to sleep and activating another) might result in the new process' virtual memory mapping being done incorrectly. From a security perspective, this could give one process access to memory owned by another.
    • Another issue mentioned is the possibility that No-Execute bits may be ignored. The OS can set the No-Execute (NX) bit on a page of memory that it knows to be pure data that should not be executed. The processor will refuse to execute code from any memory page with NX set. This makes most buffer overflow attacks impossible, because the normal buffer overflow attack involves getting a bit of malicious code shoved into a stack-based buffer as well as overflowing the buffer to overwrite a return address so that the CPU will jump to and execute the malicious code. Obviously, if the processor sometimes ignores NX bits, the buffer overflow attacks become possible again.
    • Theo also mentions possibly-ignored Write-Protect (WP) bits. The OS can mark memory pages as read-only. This is used for all sorts of things related to security. One of the biggest is preventing processes from writing to the memory in which shared libraries are loaded. If my process could overwrite, say, the C library code implementing "printf", other processes that call this function would execute my code. Some of them will be running as root, so I can execute code with root permissions. Modern operating systems do lots of data-sharing between processes, some of it completely non-writable, other parts of it "copy on write". Copy-on-write pages are implemented by setting the WP bit and then catching the page fault generated by the CPU when a process tries to write the page. The fault handler quickly copies the page in question, allows the write to hit the copy, and reswizzles the page table so the virtual page of the writing process points to the new copy. WP bits being ignored would also break this, so lots of cases where data is "opportunistically" shared would become really and truly shared, allowing one process to corrupt data used by another.

    There are other issues as well... but these are a good sample, and should give an idea of what kind of bad stuff these CPU bugs/changes can make possible.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  17. Old jokes from the Pentium days... by Anonymous Coward · · Score: 4, Funny

    The first Pentium had a floating point bug. Maybe they're working too closely with Microsoft? (I kid! I kid! Put down that flamethrower!) Any way, here are a few Pentium jokes I dug up. If only the Core 2 bugs were all floating point erroirs we could recycle all of these old jokes to Core 2 jokes!

    Q: How many Pentium designers does it take to screw in a light bulb?
    A: 1.99904274017, but that's close enough for non-technical people.

    Q: What do you get when you cross a Pentium PC with a research grant?
    A: A mad scientist.

    Q: What's another name for the "Intel Inside" sticker they put on Pentiums?
    A: The warning label.

    Q: What do you call a series of FDIV instructions on a Pentium?
    A1: Successive approximations.
    A2: A random number generator.

    Q: Complete the following word analogy: Add is to Subtract as Multiply is to:
                    1) Divide
                    2) ROUND
                    3) RANDOM
                    4) On a Pentium, all of the above
    A: Number 4.

    Q: What algorithm did Intel use in the Pentium's floating point divider?
    A: "Life is like a box of chocolates." (Source: F. Gump of Intel)

    Q: Why didn't Intel call the Pentium the 586?
    A: Because they added 486 and 100 on the first Pentium and got 585.999983605.

    Q: According to Intel, the Pentium conforms to the IEEE standards 754
            and 854 for floating point arithmetic. If you fly in aircraft
            designed using a Pentium, what is the correct pronunciation of "IEEE"?
    A: Aaaaaaaiiiiiiiiieeeeeeeeeeeee!

    Q: Did you hear about the new "morning after" pill being developed as a replacement for RU-486???
    A: Its called RU-Pentium. It causes the embryo to not divide correctly.

    TOP TEN NEW INTEL SLOGANS FOR THE PENTIUM:
        9.9999973251 It's a FLAW, Dammit, not a Bug
        8.9999163362 It's Close Enough, We Say So
        7.9999414610 Nearly 300 Correct Opcodes
        6.9999831538 You Don't Need to Know What's Inside
        5.9999835137 Redefining the PC -- and Mathematics As Well
        4.9999999021 We Fixed It, Really
        3.9998245917 Division Considered Harmful
        2.9991523619 Why Do You Think They Call It *Floating* Point?
        1.9999103517 We're Looking for a Few Good Flaws
        0.9999999998 The Errata Inside

    THE TOP TEN REASONS TO BUY A PENTIUM MACHINE:
    10. Your current computer is too accurate
    9. You want to get into the guinness book as "owner of most expensive paperweight"
    8. Math errors add zest to life
    7. You need an alibi for the I.R.S.
    6. You want to see what all the fuss is about
    5. You've always wondered what it would be like to be a plaintiff
    4. The "intel inside" logo matches your decor perfectly
    3. You no longer have to worry about cpu overheating
    2. You got a great deal from JPL
    1. It'll probably work

    Thank you, thank you, I'll be here all week. Remember to tip the bartender. Lets see, 20% of... divide by...

  18. Re:How hard is it to get right? by suv4x4 · · Score: 4, Funny

    % uname -a
    FreeBSD myhost.grateful.net 6.2-STABLE FreeBSD 6.2-STABLE #0: Mon May 28 09:52:28 PDT 2007 me@myhost.grateful.net:/usr/obj/usr/src/sys/AMD64 i386


    Wait... this works in Slashdot's text area?

    % uname -a

    % uname -a

    Damn it :(

  19. Re:Summary sucks, someone please provide better on by TheRaven64 · · Score: 4, Informative

    I don't know why Theo posted that link, because it is about the Core, not the Core 2. They are two completely different micro-architectures. The Core was a slightly tweaked Pentium M (which is basically a P6 with extra vector instructions and the NetBurst branch predictor), while the Core 2 is a completely new micro-architecture. If you compare the errata in the two links, you will see that they are quite different.

    --
    I am TheRaven on Soylent News
  20. Scariest post of the thread by Anonymous Coward · · Score: 4, Informative
    Scariest post on that thread:

    http://marc.info/?l=openbsd-misc&m=118302016430106 &w=2

    AMT is a technology intended to facilitate survailance, maintenance
    and control computers remotely.

    * Monitor and control (filter) the network traffic - before/under the
    running operatingsystem

    * sending out patches to computers - even if they are turned off.

    * Control, upgrade, change, add and remove software
  21. The bugs aren't really the scary part, by yAm · · Score: 4, Interesting

    the AMT (Advanced Management Technology) is the truly frightening bit. Big Brother visits your computer:

    A Swedish ASIC designer explains:
    http://strombergson.com/kryptoblog/?p=311

    (A rough) translation:
    http://marc.info/?l=openbsd-misc&m=118302016430106 &w=2

    --

    Chris

    So Buddha walks into a pizza parlor and says: "Hey, make me one with everything."

  22. Re:How hard is it to get right? by Anonymous+Brave+Guy · · Score: 4, Funny

    Any sufficiently advanced undocumented feature is indistinguishable from a bug. :-)

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  23. Theo-bashing is so passe. by peacefinder · · Score: 4, Insightful

    "Hasn't anyone noticed these terrible bugs?"

    Apparently they have, and now we know too.

    Look, I know Theo-bashing is a traditional bit of fun, so I hate to rain on your parade. But you should keep in mind that the OpenBSD team is uniquely (or nearly so) positioned to discover and publicize the security implications this sort of flaw. The whole project is security oriented; they don't accept "binary blobs" into security-sensitive roles, which means they look more closely at hardware than most; they operate in a very transparent manner; their user base is supportive of any security-related moves by the devs; their installed base is heavy in security-sensitive roles; and the project is notorious for not giving a damn about political considerations.

    "But they're rarely very serious, they rarely actually affect anything in remotely realistic scenarios."

    OpenBSD is heavily used in the perimeter security role, and in security-sensitive roles generally. As its OS security gets better, OpenBSD's sensitivity to hardware security flaws gets higher. If there's an architectural flaw that the OS can't cover, OpenBSD's user base needs to know that so they can evaluate their overall security and spec hardware accordingly.

    Almost no one else needs to worry about hardware exploits in Core 2 as much as OpenBSD does, because almost every other OS for general-purpose hardware has easier exploit paths. For instance, I'm not worried about this flaw on my home iMac, because my iMac isn't in a security-sensitive role. If an attacker wants my home data, it'd be easier for the attacker to simply break in and steal the whole box.

    "How does he expect Intel to respond?"

    Like the professionals they are, I'd think.

    --
    With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
    1. Re:Theo-bashing is so passe. by peacefinder · · Score: 4, Insightful

      "First off I'm not "Theo-bashing", I'm bashing what Theo is doing."

      So in your clause "Raving lunatics like Theo" you'd like the reader to focus on the fact that he's raving, but the reader should basically ignore that you just happen to mention in passing that you think he's a lunatic?

      Right, got it. Thanks for the clarification on that.

      "Theo read the errata that's public to everyone, and says that he "bets" there may be "potential" security implications."

      Well - and I can only speak for myself here - the fact is that I'm an ignorant fuckwit when it comes to the security implications of Intel's hardware errata. I know just enough to know that I cannot read Intel's chip errata and produce an opinion about the security implications that ihas any statistically-significant superiority to random chance. I'd guess that it is highly likely that well in excess of 95% of the general computer-buying public is similarly ignorant.

      However, I'm dead certain that Theo knows a great deal more about secure OS design and the implications of these errata than I do. I'm pretty sure he knows more about it than you do, too. (Nothing personal, but I figure there's probably under five thousand people worldwide who have similar expertise at the moment. Odds are you're not among them.) His track record thus far isn't perfect, but it's really fucking good. So if he says that it's likely that some of the flaws will prove exploitable, I'm willing to provisionally trust his predictive opinion.

      And it's not like it'll stop me - or most other security-conscious people - from buying Core 2 machines. It will, however, prevent most or all security-conscious admins from deploying such machines in highly security-sensitive roles until the picture becomes more clear. This is not going to be a huge impact on Core 2 sales, because there already were better hardware solutions than Core 2 for both multi-user server roles and for perimeter security roles. The real problem with these alleged security flaws will be in the laptop and desktop markets, because Core 2 is pre-eminent there. Even so, it would only affect the segment of that market that is security-sensitive... which probably is not a huge portion of that market. (As another commenter said, though, the DoD's tech buyers are probably going to have serious headaches.)

      So if Theo's goal is to wound Intel - which I doubt - this is not going to leave a big mark in sales. Theo fails it!

      Overall, I don't think your theory holds much water. Sure it's possible that he's just being a dick about it just to spite intel. But it's also possible that his expertise leads him to have genuine concern, and his forthrightness leads him to say it plainly. I, for one, am not willing to bet my network security on the chance that the former possibility contains the whole truth behind this.

      --
      With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
  24. Re:wrong by Sparohok · · Score: 4, Insightful

    Itanium is a lesson in how not to handle technological transitions. Itanium was picked by geeks who had no idea of what the market wanted or needed, and Intel marketing and management blindly believed what they were hearing from the geeks.

    Actually, Itanium was a wildly successful product. Mere rumors of Itanium's capabilities were sufficient to kill DEC Alpha, drive SGI/MIPS out of the high end processor market and disrupt SPARC and PA-RISC development programs. Intel virtually eliminated the threat of competitive RISC architectures for years with the announcement of Itanium.

    (Another company that works like that is Microsoft, which is why they keep churning out such bad software.)

    To much the same effect.

  25. The erratum mentioned by m.dillon · · Score: 4, Informative

    Ok, lets look at some of these.

    AI65 - Thermal interrupt does not occur if DTS reaches an invalid temperature. What the hell is an invalid temperature? A disconnected sensor or something? It doesn't sound like something a userland thermal-generating loop can exploit but the errata is not detailed enough to know for sure.

    AI79 - REP/STO in specific situation may cause the processor to hang. BIOS patchable. The errata mentions an uncacheable memory store. If this is a pre-requisit then only user programs with access to /dev/io or memory-mapped bus space can exploit it. So e.g. something like XOrg, but not the typical user program. Worse case seems to be a system freeze. Still, this is something to be concerned about.

    AI43 - Concurrent MP writes to non-dirty page may result in unpredictable behavior. This one is extremely serious. It effects any threaded program and possibly even programs which are no threaded. This would cause me to not purchase the cpu. It says that a BIOS workaround is possible (aka microcode update).

    AI39 - Cache access request from one core hitting a modified line in the L1 cache of another core may cause unpredictable system behavior. What the hell? Are they out of their minds? This is a big-time show stopper. It says it can be fixed with the BIOS (aka microcode update). I sure hope so.

    AI90 - Page access bit may be set prior to signaling a code segment limit fault. This one is pretty serious. This cannot occur on most operating systems because the code segment is set to be unlimited and access is governed solely by the page tables. In 64 bit mode emulating 32 bit operation the problem might occur if a bit of code wraps the segment. There are possibly issues in other emulation modes, such as VM86 mode. The effect of setting the page accessed bit will not make a page accessible that was not previously unaccessible, but it will result in unexpected modifications to the page table page and numerous operating systems may free such pages to the page-zerod page list under the assumption that they cleaned the page out when in fact there may be a page table entry with the access bit set (meaning the page wasn't completely zerod when freed). That could cause problems.

    AI99 - Updating code page directory attributes without tlb invalidation may result in improper handling of a page fault exception. This one doesn't look too serious, it just means the wrong exception will be taken first, meaning that the OS will probably seg-fault the program. If the OS corrects the issue and retries, the correct exception will be taken on retry. All BSDs that I know of handle page fault exceptions generically and will not be effected. Of greater concern is what sort of modifications to a page directory entry now require TLB invalidations? On FreeBSD and DragonFly, and I assume most BSDs and probably Linux too, page directory entries usually transition between only two states and a TLB invalidation is made when a page directory entry is invalidated, so they wouldn't be effected by this bug.

    1. Re:The erratum mentioned by m.dillon · · Score: 4, Informative

      Now the core duo/solo errata.

      AE1 - CPU to memory copy with FST with numeric and null segment exceptions may cause GP faults to be missed and FP linear address mismatch. In otherwords, a segmentation violation will be missed and a write will be allowed to proceed. This will not effect OSs using page tables for protection, which is all OSs. Sounds bad but doesn't sound like it will effect existing OSs

      AE2 - Code segment violation may occur if a code stream wraps around a segment. No program does this on purpose, and OSs will just seg-fault the program if it does. The intel errata says it could be exploted by a virus but I don't see how by its current description. Maybe there is something they aren't telling us.

      AE3 - POPF/POPFD that sets the trap flag (aka when single-stepping a program) may cause unpredictable behavior. Holy shit. This one is serious.

      AE4 - REP MOVS in fast string mode continues in that mode when crossing into a page with a different memory type. This means that when crossing over from a cacheable page to an uncacheable page, the I/Os remain cacheable. And vise-versa. This will never happen on purpose so the question is whether it can be exploited in some way, and the answer to that is not that I can see.

      AE5 - Memory aliasing with inconsistent dirty and Access bits may cause a processor deadlock. This means a PTE with 'D'irty set but with 'A'ccess not set. FreeBSD and DragonFly always set the A bit when setting the D bit and will not be effected but I don't know about other OSs. This is a very serious bug though.

      AE6 - VM bit will be cleared on a double fault exception. Double faults are usual fatal for the whole machine so unless they can occur in an emulation mode (where the double fault is being emulated). Check your OS. FreeBSD and DragonFly do not try to resume after a double fault and do not take faults in VM mode and are not effected.

      AE7 - Incompatible write attributes in page table verses MTTR may consolidate to UC. Not a big deal, doesn't happen unless something has been misprogrammed.

      AE8 - FXSAVE after FNINIT without an intervening FP instruction may save uninitialized values for FDP and FDS. This isn't an issue unless the data being written represents a security leak of some sort, such as a portion of the state of another program's FP unit. This could be a security issue with regards to one program snooping another program's cryptography. Statistical snooping possible through this sort of mechanic has been shown to be effective in recent years.

      AE9 - LTR can result in a system hang. Well, BSDs don't really use LTR all that much and the conditions required just will not happen on BSD or probably linux either. A break point must be set on the cache line containing the descriptor data? Not from userland!

      AE10 - Invalid entries in the page directory pointer table register may cause a GP fault. Not an issue.

      AE11 - REP MOVS operation in fast string mode continues in that mode when crossing into a page with a different memory type. Not an issue.

      AE12 - FP inexact result exception flag may not be set if the #inexactresult occurs in any FPU instruction with certain instructions occuring afterwords. This is a very serious bug that only compilers can work around (and probably won't).

      AE13 - IFU/BSU deadlock may cause system hang. I've no idea what IFU and BSU is.

      AE14 - MOV with debug register causes a debug exception. Sounds like the worst that happens here is a program seg faults if this condition is hit while the program is being debugged.

      AE15 - INIT does not clear global entries in the TLB. Oh, joy. Intel says that BIOS writers would know of thise errata and cod efor it, but insofar as I know this could be an issue when starting up APs.

      AE16 - Use of memory aliasing with inconsistent memory type may cause system hang. It shouldn't be possible for this to happen with a modern OS. It means mapping the same physical page of memory with different memory contr