Уязвимость в реализации сокетов AF_PACKET ядра Linux

Минуя три гoдa с мoмeнтa вoлны уязвимoстeй (1, 2, 3, 4, 5) в пoдсистeмe AF_PACKET ядрa Linux выявлeнa eщё oднa прoблeмa (CVE-2020-14386), пoзвoляющaя лoкaльнoму нeпривилeгирoвaннoму пользователю справиться код с правами root или истечь из изолированных контейнеров, при наличии в них root-доступа. Интересах создания сокета AF_PACKET и эксплуатации уязвимости необходимо наличие полномочий CAP_NET_RAW. Тем не поменьше, указанное полномочие может быть получено непривилегированным пользователем в контейнерах, создаваемых в системах с включённой поддержкой пространств имён идентификаторов пользователей (user namespaces). Скажем, user namespaces по умолчанию включён в Ubuntu и Fedora, а не активирован в Debian и RHEL. В Android ей-же-ей создавать сокеты AF_PACKET имеет тяжба mediaserver, через который может находиться (в присуствии) эксплуатирована уязвимость. Уязвимость присутствует в функции tpacket_rcv и вызвана ошибкой подсчеты переменной netoff. Атакующий может построить условия, при которых в переменную netoff кончайте записано значение меньше переменной maclen, кое-что вызовет переполнение при вычислении "macoff = netoff - maclen" и неверной последующей установке указателя в буфер для поступающих данных. В итоге, атакующим может существовать инициирована запись от 1 до 10 байт в земля за границей выделенного буфера. Отмечается, по какой причине в разработке находится эксплоит, позволяющий взять root-права в системе. Ошибка выкладки присутствует в ядре с июля 2008 годы, т.е. во всех актуальных ядрах, хотя известная сейчас возможность применить ее в (видах записи в область за границей выделенного женские груди (уязвимость) предположительно была привнесена в феврале 2016 (ядра 4.6-rc1 и новее), с развитием поддержки virtio_net. Отрегулирование пока доступно в виде патча. Пронаблюдать появление обновлений пакетов в дистрибутивах не запрещается на следующих страницах: Ubuntu, Fedora, SUSE, Debian, RHEL, Arch. Основа: http://www.opennet.ru/opennews/art.shtml?num=53656