В драйвере vhost-net, обеспечивающем работу virtio net на стороне хост-окружения, выявлена уязвимость (CVE-2020-10942), позволяющая локальному пользователю инициировать переполнение стека ядра через отправку устройству /dev/vhost-net определённым образом оформленного ioctl(VHOST_NET_SET_BACKEND). Проблема вызвана отсутствием должной проверки содержимого поля sk_family в коде функции get_raw_socket()...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=52747
О как… Робот Петя (Google syzkaller) нашёл багу и тут же её "размотал".
В этом месте я не понял, Linux 4.6 — это нижняя зааффекченная версия или просто ограничение в алгоритме.
Кто знаком с Петей ближе, прокомментируйте пожалуйста.
Независимый аудит от Анонима показал что уязвимые строки есть и в 4.5
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...
и в 4.6 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...Откуда кстати другной Аноним взял цифру 4.6? В Дебиане написано что уязвимо все до 3.16.56-1
Вот тут https://lkml.org/lkml/2020/2/15/125 Петя отчитался о проделанной работе. И приложил PoC.
В протоколе — тесты начиная с 4.6, что меня спросонья несколько удивило (вроде как "bisect" — про нахождение "всё починившего" коммита методом научного тыка, а за 4.6 я про kvm не помню интересного…). * fix таки было 16032be56c1f66770da15cb94f0eb366c37aff6e "virtio_net: add ethtool support for set and get of settings", но не про это.
* ИЧСХ, отчёт от 15.02.2020. Два месяца трудились (над тремя строчками, при том что практически "носом ткнули").
Так ты про вот это https://syzkaller.appspot.com/x/bisect.txt?x=13204371e00000 В целом да он только судя по всему он до 4.6 проверяет ниже нет.
> Откуда кстати другной Аноним взял цифру 4.6? В Дебиане написано что уязвимо все до 3.16.56-1просто дебиан копал до 3.16.56
А петя с васей копали только до 4.6Так-то vhost-net с нами с 2.6.34-rc1 как минимум.
Шо в прошлой, что в этой новости 404 на странице Арча - у них всё ОК!
Ядро упало, от переполнения стека. Ну это знаешь как всегда: почитал про уязвимость, руки так и тянутся попробовать её в деле.
Это как нет антивируса нет вируса.
Они добавляют спустя несколько дней, как и починят и всё уже будет известно.
Ну лень несколько раз редактировать.
Быстро. Бесплатно. Дыряво.
Медленно, за деньги, дыряво и поболее, не юзабельно.
отпетая фигня...
crw------- 1 root root 10, 238 Sep 11 2019 /dev/vhost-net
crw------- 1 root root 10, 241 Sep 11 2019 /dev/vhost-vsockопять надо эту уязвизьгмость запускать от рута уже полученного на хосте? Расходимся, сенсация не состоялась.
А вам надо переписать эксплоит прямо под qemu-kvm? Чтобы любой киддис мог покласть хост с 50…100 ВМ? (На моей грядке это типовая загрузка гипервизора.)
пишите, чо. Донатов не обещаю, но точно пригодится.
У меня масса друзей.Но подходящий баг придется самому поискать, от этого - пользы никакой, увы.
берёшь виртуальную машину где-нибудь в aws/gce/azure, запускаешь эксплоит и роняешь хост вместе с сотней других виртуалок
к сожалению, уронить таким способом получится только вложенные виртуалки, которые ты сам внутри этой виртуальной машины зачем-то запустил.это драйвер _хоста_, не виртуалки. Тот vhost-net что внутри нее - он не для общения с хостом, а чтоб самому им быть.
а, ну тогда да, абсолютно безвредный баг, на "уязвимость" не тянет
гугль же ж. То есть тянет на средство обхода дополнительных костылей и прокладок поверх стандартных юниксовых прав - selinux, cgroups и т д.Но, увы, только крэш.