Intel CPUs have design and security flaw

Yes, 64 bit only. However I wouldn't count on AMD being free of this defect just yet. As far as I can tell the flaw is in the original design and it was AMD that came up with the design.
 
Last edited:
According to this article more than one flaw has been detected and some are expected to affect Intel, AMD, and ARM. ARM has already acknowledged this. AMD appears to be disputing it.
 
Critical flaws revealed to affect most Intel chips since 1995

ZDNet said:
Most Intel processors and some ARM chips are confirmed to be vulnerable, putting billions of devices at risk of attacks. One of the security researchers said the bugs are "going to haunt us for years."

Just hours after proof-of-concept code was tweeted, security researchers have revealed the long-awaited details of two vulnerabilities in Intel processors dating back more than two decades.

Two critical vulnerabilities found in Intel chips can let an attacker steal data from the memory of running apps, such as data from password managers, browsers, emails, and photos and documents.

The researchers who discovered the vulnerabilities, dubbed "Meltdown" and "Spectre," said that "almost every system," since 1995, including computers and phones, is affected by the bug. The researchers verified their findings on Intel chips dating back to 2011, and released their own proof-of-concept code to allow users to test their machines.

"An attacker might be able to steal any data on the system," said Daniel Gruss, a security researcher who discovered the Meltdown bug, in an email to ZDNet.

"Meltdown is not only limited to reading kernel memory but it is capable of reading the entire physical memory of the target machine," according to the paper accompanying the research.

The vulnerability affects operating systems and devices running on Intel processors developed in the past decade, including Windows, Macs, and Linux systems...


http://www.zdnet.com/article/securi...tel-chip-since-1995-arm-processors-vulnerable
 
OK, so here are some pertinent questions. If these flaws have been around for 20 years....

a. How come it has taken this long to discover them?
b. Has anyone actually exploited any of them in that time?
c. Is it really a security flaw if no-one has known about it for 20 years?
d. Does announcing these flaws make them more of a security risk due to hackers now becoming aware that they exist?
 
So I thought I would add some information about why these changes to Windows and Linux will cause a large performance hit.

TLDR: The fix involves clearing a hardware cache on the CPU whenever the OS kernel is invoked, and CPU caches are much faster than accessing your RAM, so each time the OS kernel is invoked, it is going to take significantly more time that prior to these patches.

<snip>

You remove the kernel from the virtual address space of the user process, and every time a system call happens you have to flush the TLB, and load a new page table for the kernel.
Nitpick: And on return from the syscall, flush the kernel part of the TLB and reload the user program part of the TLB.

ETA: good write-up as far as I can judge!

So the safest solution is to run MINIX 2.0 as OS, which doesn't have a VM subsystem in its kernel? :p

Oh, and am I glad I've bought AMD processors the last couple of times...
 
Last edited:
I have just checked my Desktop CPU. Its an Intel Core i5-6500 (64 bit) but I am only running Windows 10 - 32 bit because there are some applications necessary to my business that will not run on Win 10 - 64 bit.

Am I still vulnerable even though I am not running in 64 bit mode.
 
To clear things up a little further, the embargo on information has come down so we know what the attacks are. Specifically there are two, one called Meltdown, and one called Spectre.

Meltdown, as far as can be told right now, only affects Intel CPUs. It is the one that requires the kernel page table isolation that affects performance.
Spectre operates on similar principles but doesn't break kernel security. It is less dangerous than Meltdown (though not benign to be sure) and affects Intel, AMD, and ARM processors equally.

The way they both work is pretty interesting actually. I'll explain Meltdown for you all. So, the processor will not actually let you access or use data speculatively accessed when the instructions are fully resolved. So here is the basic example given, here register RCX contains a protected kernel memory address, and register RBX contains the address of a large array you have allocated in user space. Also AL is an 8-bit register that is simply the lowest byte of the 64-bit RAX register:

1: mov AL, byte [RCX]
2: shl RAX, 0xC
3: mov RBX, qword [RBX + RAX]

Line 1 tries to access 1 byte of data from the address in RCX. Line 2 takes the RAX register, which now contains that data in it's lowest byte, and shifts it left 12 bits. so if the contents of RAX looked like this: 0x00000000000000FF, after instruction 2 it now looks like this: 0x00000000000FF000. Finally line 3 tries to read the location of the user space array offset by the current value of RAX. So if the array is located at user space memory address 0x00000000F000000, it will try to load the data in the array located at address 0x000000F00FF000.

Now when instruction 1 is finally fully resolved, the CPU will throw a fault because your user process isn't allowed to access the address in RCX, and all the work done by instructions 2 and 3 is reverted. You will not find the contents of memory address RBX + RAX in register RBX after this snippet of code. So how does the exploit work? Well this is the cool part, and should give those of you asking how this took so long to figure out an idea of why stuff like this could be hard to find.

Here is what happens. I mentioned before that the CPU contains caches for the data it pulls from main memory. This means that if a piece of memory has been recently accessed, when you access it again it will be much faster. So what you do to exploit this is you make sure your large user space array is "cold", meaning not present in the CPU cache. You try the exploit which contains the above code, hoping the CPU will attempt to speculatively execute it. Then you time how long it takes to load data from different points in the array! The purpose of line 2 is to spread out the addresses in the array that will be read based on the data read from kernel memory, so each entry is 4096 bytes away from any other, making sure touching one doesn't include another in it's cache line. Once you time the memory accesses for the array, you see that accessing memory address 0x000000F00FF000 only took 1 ns, while the other 255 memory locations you tried to access took 100 ns each. Now you know that the kernel contained the byte FF at the memory location that was stored in RCX.

This is amazing in my opinion. You use the nature of caching that we use to keep our CPUs as busy as they can potentially be in order to generate a timing attack to determine the contents of memory we don't have access to!
 
Last edited:
So glad I held on to my 386 :thumbsup: Laugh all you want at its slower speed but I'm secure baby.
 
Thanks for all the posts, Fizil. Very interesting (you know, the bits that I understood :D )

In your view, what's the kind of mischief a hacker or attack could wreak with Meltdown? Stealing online and/or application passwords?

How much do you think the fixes will impact CPU/memory performance for society's most important applications known as video games? :)
 
Thanks for all the posts, Fizil. Very interesting (you know, the bits that I understood :D )

In your view, what's the kind of mischief a hacker or attack could wreak with Meltdown? Stealing online and/or application passwords?
How much do you think the fixes will impact CPU/memory performance for society's most important applications known as video games? :)

Theoretically pretty much anything.

The paper on meltdown shows an example that could read web passwords - see attached screengrab.
 

Attachments

  • clipmeltpdf.jpg
    clipmeltpdf.jpg
    65.1 KB · Views: 30
Thanks for all the posts, Fizil. Very interesting (you know, the bits that I understood :D )

In your view, what's the kind of mischief a hacker or attack could wreak with Meltdown? Stealing online and/or application passwords?

How much do you think the fixes will impact CPU/memory performance for society's most important applications known as video games? :)

Well first the attack is local, so your computer already has to be compromised, just like any other virus or malware don't run programs you don't trust, or go to shady websites. Once your computer is compromised, Meltdown can be used to read every page of main memory on your computer. This is because Meltdown can access kernel memory, which is bad enough in and of itself, but the kernel always has the entirety of physical memory mapped itself, so the memory space of all your other running applications is available once you can read the kernel addresses.

So yes, stealing passwords is a real possibility. Even your local password to log on to your computer could potentially be compromised if the hacker reads the memory buffer that clear-text password is stored in before it is hashed and compared against your computer's record when you log in.

Video games (on Intel PCs) will probably not be impacted much, with the caveat that I haven't seen the impact on multi-player games yet. MMO's in particular tend to be particularly chatty on the network, which could potentially cause small performance issues. Overall though, the performance issues will be due to the increased overhead in system calls, and while video games do have to make system calls to render stuff to the screen, frameworks like DirectX are designed to batch things up so that a lot of work is done in a minimum number of system calls.

The main potential hits are going to be things like Database Servers, App Servers, High-traffic websites, or any application that dynamically allocates and releases memory a lot. Most applications a home user/gamer would use aren't like those.
 
Apple has confirmed that all Mac computers, iPads and iPhones are effected by Meltdown and Spectre.
 
This is why I'm glad I don't have Win 10. If they **** up the patch then I have the option to rollback, or not to install. With Win 10 no such option exists, you get it forced upon you whether you like it or not.
 
You know, I always thought this would be a good reason whythe tech in Star Trek:TOS looks clunkier than that of Enterprise. Say the Borg (unknown to the Federation) put a virus in all computer systems, necessitating a totally new operating system basic that was only just getting going again by Kirk's time. That would have been a cool conclusion/cliffhanger to the Enterprise series (and likely better than the one we got.)
 
https://support.microsoft.com/en-us/help/4056892/windows-10-update-kb4056892

This particular patch will NOT be applied unless you take positive action to add in the registry key from the above article. While you're generally correct that patching is automatic, it's not in this case.

Actually that's not what's going on with the patch. Some third party Antivirus software is incompatible with the fix so if you have incompatible third party AV the patch will be delayed until your AV supplier tests their product and sets that registry key.

If you are running Windows Defender you get the patch right away because that registry key is already set. Since I don't use 3rd party AV I have the key set and I see the update is queued for installation on a restart which I will be doing right after I hit submit because this is an important security update and the other bug fixes are important too.

Ref.
http://www.itprotoday.com/network-security/how-protect-against-meltdown-and-spectre-vulnerabilities
http://www.zdnet.com/article/window...check-if-your-av-is-blocking-microsoft-patch/
 

Back
Top Bottom