HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ИНФО > Мировые новости. Обсуждения.
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 04.09.2019, 20:16
Suicide
Познавший АНТИЧАТ
Регистрация: 24.04.2009
Сообщений: 1,730
Провел на форуме:
30140275

Репутация: 3256


По умолчанию

Разработчики проекта Grsecurity поделились поучительной историей, демонстрирующей как необдуманное устранение предупреждений компилятора может привести к появлению уязвимостей в коде. В конце мая для ядра Linux было предложено исправление нового вектора эксплуатации уязвимости Spectre через системный вызов ptrace.

В процессе тестирования патча разработчики обратили внимание, что при сборке компилятор выводит предупреждение о смешивании кода и определений (структура была определена после кода с присвоением значения существующей переменной):

int index = n;

if (n ptrace_bps[index];

Линус принял исправление в свою master-ветку, избавившись от предупреждения путём переноса определения переменной в блок if:

if (n ptrace_bps[index];

В июле исправление также было портировано в стабильные ветки ядра 4.4, 4.9, 4.14, 4.19 и 5.2. Сопровождающие стабильных веток также столкнулись с предупреждением и вместо того, чтобы проверить, не устранено ли оно уже в master-ветке Линуса, собственноручно внесли исправление. Проблема в том, что они, особо не задумываясь, просто перенесли определение структуры вверх, так, что вызов array_index_nospec, непосредственно обеспечивающий защиту от уязвимости, перестал использоваться при определении структуры, и вместо переменной "index" всегда использовалась переменная "n":

int index = n;

if (n ptrace_bps[index];

index = array_index_nospec(n, HBP_NUM);

 
Ответить с цитированием

  #2  
Старый 04.09.2019, 20:43
user100
Guest
Сообщений: n/a
Провел на форуме:
884729

Репутация: 373
По умолчанию

Интересно, что по данному поводу сказал Линус?
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ