(fwd) WARNING: Serious Pentium Bug

Andrey Gerzhov (kittle@freeland.alex-ua.com)
Fri, 14 Nov 1997 13:12:56 +0200 (EET)

-- forwarded message --
Path: freeland.alex-ua.com!barmaglot.alexradio.kiev.ua!f188.n463.z2!f116.n463.z2!f58.n463!f238.n5020!f443.n5020!ddt.demos.su!f400.n5020!f1.n5057!f6.n5057!dixon.volgacom.samara.su!news
Newsgroups: fido.ru.os.cmp
Distribution: fido
X-Comment-To: Sergey Okhapkin
From: root@mad_max.volgacom.samara.su (Mike Shirobokov)
X-FTN-Sender: Mike Shirobokov <Mike.Shirobokov@f6.n5057.z2.fidonet.org>
Reply-To: mad_max@dixon.volgacom.samara.su
Date: Thu, 13 Nov 97 15:12:20 +0200
Subject: WARNING: Serious Pentium Bug
Message-ID: <64enbt$1fb@mad_max.volgacom.samara.su>
References: <4091703180@crimson.poseidon.aha.ru> <879372508@f50.n5020.z2.ftn>
Organization: QMG Object Research.
X-FTN-AREA: RU.OS.CMP
X-FTN-MSGID: mad_max.volgacom.samara.su 18d53b89
X-FTN-REPLY: 2:5020/50 346a28dc
X-FTN-Tearline: ifmail v.2.10
X-FTN-Origin: QMG Object Research. (2:5057/6@fidonet)
X-FTN-SEEN-BY: 50/381 520 460/111 461/121 463/16 18 27 58 59 61 67 72 116 126 159
X-FTN-SEEN-BY: 463/188 432 600 464/100 465/70 467/67 469/38 999 4614/1 6 4615/21
X-FTN-SEEN-BY: 4625/1 5000/7 5001/15 211 5002/16 5004/16 5006/1 5007/1 5010/21
X-FTN-SEEN-BY: 5011/13 201 5015/28 5020/35 47 52 62 68 118 200 204 225 238 240 242
X-FTN-SEEN-BY: 5020/300 302 400 423 443 463 477 509 510 604 1057 5023/8 11 5027/16
X-FTN-SEEN-BY: 5029/5 5030/87 115 5031/3 5032/3 5033/2 3 5034/1 5036/1 5040/47
X-FTN-SEEN-BY: 5049/1 256 5050/5050 5051/15 5053/16 5054/9 10 5057/1 2 3 6 10 14
X-FTN-SEEN-BY: 5057/18 19 20 24 5058/4 5059/2 5060/88 5069/1 2 5075/10 5077/3 38
X-FTN-SEEN-BY: 5078/15 5080/80 1003 5083/21 5090/2 5100/21
X-FTN-PATH: 5057/6 1 5020/400 443 238 463/58 116
X-FTN-PATH: 463/188
Lines: 39
Xref: freeland.alex-ua.com fido.ru.os.cmp:3954

SO> Sergey Okhapkin (Sergey.Okhapkin@f50.n5020.z2.fidonet.org) wrote:

SO> Hi everyone,
SO> I just confirmed that disabling the 1st Level Cache (as someone
SO> suggested here) in the BIOS (if it offers that option) makes at least
SO> Windows NT 4.0 immune against the F0-attack. You can leave the 2nd
SO> level Cache enabled.

SO> Of course, this makes NT run at a crawl..

да, теперь это стало это понятно и из теоретических соображений. по
последним данным и (немного) моим их обдумываниям, механизм весьма
прост - сначала lock лочит шину, а только потом декодер команд
добирается до неправильного байта в инструкции и пытается вызвать
обработчик иксепшена. и, если idt entry (не уверен за это, может
быть самого кода) того нет в данный момент в l1-кэше, то все взвисает,
потому что до l2-кэша/памяти при залоченой шине проц добраться уже не
может. в качестве проверки можно попробовать подставить любое другое
вместо eax,ecx - должно быть то же самое. а почему другие процы не
подвержены - тоже понятно, значит у них либо больше глубина
декодирования и декодер успевает обнаружить ошибку раньше, чем
исполнительное устройство залочит шину, или у них другой механизм
отработки lock, типа "ничего не лочить, пока не будет декодирована вся
инструкция целиком". это же об'ясняет и нерегулярность повторяемости
этого бага под win95 - значит в чукаке регулярно _штатно_ происходит
исполнение инвалидных инструкций (зачем, интересно?;) и обработчик этого
иксепшена не вылезает из l1-кэша. я чукакских потрохов не знаю, это лишь
теоретическое предположение. попробовать немного защититься от этого дела
под линуксом (под ним, потому что только от него у меня есть сорсы;),
например, можно с помощью попытки удержать нужные данные в l1, читая их
из таймерного прерывания (1KHz, вроде?). в таком случае есть шанс
(вероятность котрого мне сложно оценить на глаз), что тело обработчика
окажется в l1 и ничего страшного не случится. сейчас похачу ядро и
проверю.

p.s. похачил, перегружаюсь. не поминайте лихом ;-)

--
	C U ! Mad Max / Queue Members Group
-- end of forwarded message --

-- 

Kittle