LINUX.ORG.RU

Уязвимость в реализации инструкции SYSRET всех выпущенных x86-64 процессоров Intel

 , ,


4

4

Компьютерная команда экстренной готовности США (US-CERT) раскрыла уязвимость в реализации инструкции SYSRET в 64-х битном режиме работы процессоров Intel, вызванную некорректной проверкой неканоничности адреса перед сменой привилегий. В результате возможно исполнение произвольного кода в Ring 0 из кода в Ring 3, а следовательно, повышение привилегий локальным пользователем, побег из виртуальной машины и т. п..

Уязвимости не подвержены операционная система Mac OS X и виртуальная машина VMWare.

Уязвимость различных систем этой атаке

>>> Подробности

★★★★

Проверено: JB ()
Последнее исправление: JB (всего исправлений: 1)

Ещё бы ссылку на check.c какой-нибудь...

backbone ★★★★★
()

Это прелестно. А что, у них там при проектировании на HDL никаких тестов на реакцию на невалидные данные не применяется? Типа, забыли при проектировании проверить или просто не подумали - получай дыру.

Xintrea ★★★★★
()

По ссылке уязвимости различных систем отсутствует информация наиболее вероятном противнике (шиндошс). Оно конечно к UNIX не имеет ни малейшего отношения, но на x86_64 вполне себе работает.

m0rph ★★★★★
()

Да, товарщи! Такие проблемы столько лет не устранены. Это колоссольный крокол.

Vudod ★★★★★
()

решето!

по ссылке не нашел, к каким конкретно моделям процессоров это относится. Неужто ко всем, в которых есть эта инструкция? :)

Harald ★★★★★
()

Ну вот. А мне кто-то ещё не верил что интел фигня и их не нужно покупать.

Но у меня на другом компе проц как раз интел, можно как-то пофиксить или только комп менять (впрочем пора пожалуй, он старый уже)?

Xenius ★★★★★
()

Сенсация! Новый блокбастер!

Во всех процессорах x86-64!

«Побег из Виртуальной Машины».

Спродюссировано лучшими инженерами Intel!

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от Xenius

Но у меня на другом компе проц как раз интел, можно как-то пофиксить или только комп менять (впрочем пора пожалуй, он старый уже)?

У тебя на другом компе овер 100 человек каждый день пытаются повысить себе привелегии? Круто живешь, я смотрю.

tazhate ★★★★★
()
Ответ на: комментарий от Xenius

Ядро ОС может защититься, если перед sysret (а он исполняется именно в ядре, в конце системного вызова) будет вручную проверять адрес возврата, а не полагаться на аппаратную проверку.

KivApple ★★★★★
()
Ответ на: комментарий от Xintrea

А что, у них там при проектировании на HDL никаких тестов на реакцию на невалидные данные не применяется?

Не исключено, что они эту ошибку давно выявили, но решили не тратить средства на устранение, ибо лемминги и так будут потреблять и радоваться. А может просто понабрали индусских гастарбайтеров вместо нормальных инженеров.

kranky ★★★★★
()
Ответ на: комментарий от Xintrea

на HDL никаких тестов

тесты ничего не гарантируют, вот и получили дыру

dimon555 ★★★★★
()

Ну вот, опять при покупке процессоров придётся степинги проверять.
АМД рулит :D

imul ★★★★★
()
Ответ на: комментарий от KivApple

А не получится, как у АМД с TLB на заре феномов? Софт-фикс то сделали, но производительность упала.

Ведь sysret именно для ускорения сделали аппаратным.

gag ★★★★★
()
Ответ на: комментарий от yaba

Да неужели?

This vulnerability only affects Intel x64-based versions of Windows 7 and Windows Server 2008 R2.

anonymous
()
Ответ на: комментарий от KivApple

Ядро ОС может защититься, если перед sysret (а он исполняется именно в ядре, в конце системного вызова) будет вручную проверять адрес возврата, а не полагаться на аппаратную проверку.

А Linux с этим как (именно само ядро, не всякие гипервизоры)?

Xenius ★★★★★
()
Ответ на: комментарий от kranky

Не исключено, что они эту ошибку давно выявили, но решили не тратить средства на устранение, ибо лемминги и так будут потреблять и радоваться.

Очень похоже на правду. Прикинули издержки на решение проблемы и решили не поднимать шум.

UNiTE ★★★★★
()

Кто виноват, понятно. А делать-то что? Ждать обновления ядра? Потом как-то обновлять микрокод? Ну же, специалисты, разъясните толково!

Mirraz
()

Про «количество дыръ въ Intel'овскихъ процессорахъ давно уже стали притчей во языцахъ» уже вспоминали?

abraziv_whiskey ★★★★★
()

Ну выпустят в итоге обновленный микрокод и всех делов.

wheel
()
Ответ на: комментарий от Xenius

Я это уже не знаю. Я только знаю, что программно ядро имеет возможность защититься. Кто защиту уже сделал - понятия не имею.

KivApple ★★★★★
()
Ответ на: комментарий от gag

Проверка каноничности адреса вроде не сложная. Надо только проверить, что адрес принадлежит промежутку от 0xFFFF800000000000 до 0x7FFFFFFFFFFF (ну это частный случай на самом деле, чисто теоретически допустимы другие промежутки, но вы не найдёте процессоров с шириной _виртуального_ адреса отличной от 48 бит). Если дело только в каноничности адреса, то это поможет.

KivApple ★★★★★
()
Ответ на: комментарий от KivApple

Не думаю, что добавление 4-х ассемблерных команд (не считая кода прибивания процесса, если адрес не прошёл проверку) в конце системного вызова заметно снизит производительность.

KivApple ★★★★★
()
Ответ на: комментарий от Vudod

Такие проблемы столько лет не устранены.

Скорее всего об этом знали соответствующие структуры и молчали.

bbk123 ★★★★★
()
Ответ на: комментарий от a1batross

Легко. Надо просто заменить все sysret на вот этот код:

mov rax, 0xFFFF800000000000
cmp rax, rcx
jbe lbl1
mov rax, 0x7FFFFFFFFFFF 
cmp rax, rcx
jbe lbl2
lbl1:
sysretq
lbl2:
; Код прибивания текущего процесса, потому что он сделал не то, что нужно
KivApple ★★★★★
()
Ответ на: комментарий от m0rph

По ссылке уязвимости различных систем отсутствует информация наиболее вероятном противнике (шиндошс). Оно конечно к UNIX не имеет ни малейшего отношения, но на x86_64 вполне себе работает.

ЛОЛ, шиндошс уязвима на любом процессоре.

anonymous
()
Ответ на: комментарий от KivApple

4 ассемблерных комманды - это совсем мало. Но как часто они будут вызываться? На среднем десктопе, может, ничего и не почувствуется, но при нагрузке в особенности на сервере?

Так вот почему у интела сейчас самые быстрые процы :) Они там просто жульничают.

gag ★★★★★
()

обновления микрокода где?

anonymous
()
Ответ на: комментарий от gag

В обработчике системного вызова, написанном на ЯВУ количество команд измеряется сотнями и тысячами. 4 дополнительные не будут заметны.

KivApple ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.