Size: a a a

2021 January 11

CD

Constantine Drozdov in rust_offtopic
Алексей
ага, а типа этот кусок процессора со спекулятивным выполнением каждый день анализирует команда профессионалов из сотни человек минимум?
сколько багов этого модуля ты знаешь?
источник

CD

Constantine Drozdov in rust_offtopic
или они написали всё правильно КРОМЕ одной досадной ошибки
источник

А

Алексей in rust_offtopic
источник

А

Алексей in rust_offtopic
ну да всё правильно написали, всего-то 236 багов
источник

CD

Constantine Drozdov in rust_offtopic
Алексей
самый первый:
 In the Linux kernel through 5.3.2, cfg80211_mgd_wext_giwessid in net/wireless/wext-sme.c does not reject a long SSID IE, leading to a Buffer Overflow.
сишку понимаешь?
int cfg80211_mgd_wext_giwessid   (   struct net_device *    dev,
   struct iw_request_info *    info,
   struct iw_point *    data,
   char * ssid  
 )  
передаем буфер, его номинальный размер - хуй знает

открываем файлик
memcpy(ssid, ie + 2, data->length);
кто же знал, что data->length может быть больше номинального размера буфера
источник

А

Алексей in rust_offtopic
а нет пардоньте
источник

А

Алексей in rust_offtopic
это не просто баги, это CVE
источник

CD

Constantine Drozdov in rust_offtopic
Алексей
это не просто баги, это CVE
я уверен, что вот этот код проходил хотя бы одно секьюрити ревью (нет)
источник

CD

Constantine Drozdov in rust_offtopic
3 из 16 этих CWE этот /net/wireless/ в 2019
источник

А

Алексей in rust_offtopic
https://wiki.osdev.org/CPU_Bugs
The x86 IRET will not clear upper bits of the stack register (32:16) when returning to 16-bit mode. As the result, the kernel high 16bit of ESP may be leaked to the userspace. Same is true for 64-bit kernel to 16-bit userspace transition. 

тут это, целые регистры очистить не могут нормально
источник

CD

Constantine Drozdov in rust_offtopic
236 багов, думаю в /net/wireless найдем столько же
источник

CD

Constantine Drozdov in rust_offtopic
Алексей
https://wiki.osdev.org/CPU_Bugs
The x86 IRET will not clear upper bits of the stack register (32:16) when returning to 16-bit mode. As the result, the kernel high 16bit of ESP may be leaked to the userspace. Same is true for 64-bit kernel to 16-bit userspace transition. 

тут это, целые регистры очистить не могут нормально
> 64-bit kernel to 16-bit userspace
источник

А

Алексей in rust_offtopic
и что?
источник

А

Алексей in rust_offtopic
ошибка простая? простая
допущена? допущена
источник

А

Алексей in rust_offtopic
ну и всё тогда
источник

CD

Constantine Drozdov in rust_offtopic
Алексей
ошибка простая? простая
допущена? допущена
ошибка простая? да
просто целиком и полностью находится в абсолютно защищенном ring 0 коде, а так ничего
источник

CD

Constantine Drozdov in rust_offtopic
IRET это interrupt return если что
источник

А

Алексей in rust_offtopic
тем более
источник

CD

Constantine Drozdov in rust_offtopic
Алексей
тем более
А знаешь, что самое страшное в этой ошибке? Это не единая и не даже не двойная точка отказа, это отказ одной из компонент многокомпонентной противоотказной системы
источник

CD

Constantine Drozdov in rust_offtopic
ты узнаешь половину адреса, который тебе не стоит знать и к которому ты не должен иметь доступ
источник