В списке рассылки разработчиков ядра Linux представлен первый публичный выпуск приложения hotspot, в рамках которого разработан GUI для наглядного изучения отчётов, подготовленных с использованием подсистемы ядра perf, предоставляющей средства для анализа производительности. Hotspot может выступать в качестве прозрачной замены команде "perf report" при разборе файлов perf.data, дополнительно предоставляя такие возможности как визаулизация через FlameGraph, сводный обзор состояния в стиле утилиты top, агрегация статистики по вызовам, различные виды сортировки, отображение всплывающих подсказок, встроенные механизмы поиска и возможность отображения бок о бок метрик для нескольких событий.
Латиноамериканский Фонд свободного ПО опубликовал полностью свободный вариант ядра 4.12 - Linux-libre 4.12-gnu, очищенный от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. Кроме того, Linux-libre отключает функции ядра по загрузке несвободных компонентов, не входящих в поставку ядра, и удаляет упоминание об использовании несвободных компонентов из документации. Для очистки ядра от несвободных частей, в рамках проекта Linux-libre создан универсальный shell-скрипт, который содержит тысячи шаблонов для определения наличия бинарных вставок и исключения ложных срабатываний. Также доступны для загрузки готовые патчи, созданные на основе использования вышеупомянутого скрипта. Ядро Linux-libre рекомендовано для использования в дистрибутивах, соответствующих критериям Фонда СПО по построению полностью свободных дистрибутивов GNU/Linux. Например, ядро Linux-libre используется в таких дистрибутивах, как Dragora Linux, Trisquel,
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 4.13. Среди наиболее заметных изменений: в состав включены планировщики ввода/вывода BFQ и Kyber, для live-патчей реализована гибридная модель обеспечения непротиворечивости, добавлен модуль dm-integrity, интегрирован фреймворк TEE (Trusted Execution Environment), в MD RAID5 добавлена поддержка частичного лога чётности, в blk-throttle обеспечена поддержка "мягких" лимитов, в поставку добавлена утилита "AnalyzeBoot". В новую версию принято более 13 тысяч исправлений от 1500 разработчиков, размер патча - 89 Мб, что примерно в два раза больше, чем патч для ядра 4.11 (изменения затронули 12364 файлов, добавлено 1300537 строк кода, удалено 266937 строк). Около 45% всех представленных в 4.12 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 3% - файловыми системами и 3% c внутренними подсистемами ядра. Основные новшества:
Французский разработчик, действующий под псевдонимом Dominus Carnufex, на практике продемонстрировал реалистичность идей по переписыванию ядра Linux на языке Rust. В настоящее время Rust уже хорошо показал себя в качестве языка низкоуровневого системного программирования и даже существует несколько проектов по разработке новых операционных систем на языке Rust. Автор исследования относится к проектам по созданию новых ОС скептически, считая, что у них нет шансов на завоевание рынка. При этом, более реалистичным выглядит постепенная переработка ядра Linux на Rust, что позволило бы решить многие проблемы с безопасностью. Чтобы не выглядеть голословным Dominus Carnufex подготовил рабочий прототип реализации интегрируемого в ядро системного вызова, код которого написан на языке Rust с ассемблерными вставками, оформленными в виде unsafe-блоков. Код компилируется при помощи rustc в объектные файлы, не привязанные к стандартной библиотеке и прикрепляемые к ядру во время сборки. Пример протестирован на ядре Linux
В списке рассылки ядра Linux опубликован набор патчей с реализаций LSM-модуля WhiteEgret, представляющего средства для обеспечения защиты системы через применение белого списка исполняемых компонентов. WhiteEgret допускает исполнение только кода приложений и библиотек, которые явно разрешены и занесены в заранее определённый белый список. Исполнение всех не включённых в список приложений блокируется, что не позволяет выполнить в системе недозволенные программы и вредоносное ПО. WhiteEgret хорошо подходит для статичных окружений, состав которых не меняется длительное время, например, для типовых серверов и промышленных управляющих систем. Обработка белого списка дозволенных программ выполняется в пользовательском окружении при помощи процесса WEUA (WhiteEgret User Application). В процессе обработки системных вызовов execve и mmap_file ядро отправляет в WEUA запрос, передавая полный путь к исполняемому файлу. WEUA на основании белого списка принимает решение о возможности исполнения данного файла. Вызов
Компания Oracle выпустила четвёртое функциональное обновление для ядра Unbreakable Enterprise Kernel 4 (UEKR4U4). Исходные тексты ядра, включая разбивку на отдельные патчи, доступны в публичном Git-репозитории Oracle. Ядро распространяется в качестве альтернативы штатному пакету с ядром, поставляемому в Red Hat Enterprise Linux, и предоставляет ряд расширенных возможностей, таких как интеграция DTrace и улучшенная поддержка Btrfs. Пакеты с ядром подготовлены для Oracle Linux 6 и Oracle Linux 7. Ключевые улучшения: В драйвер intel_idle добавлена поддержка процессоров на базе микроархитектуры Skylake, таких как Intel Xeon E3 v5, Intel Xeon E5 v5 и Intel Xeon E7 v5; Добавлена поддержка новых аппаратных платформ Hewlett Packard Enerprise, построенных на базе технологий SGI UV; В ядро добавлены компоненты, необходимые для поддержки механизма userfaultfd (user space page fault), позволяющего создавать обработчики обращений к не выделенным страницам памяти (page faults) в пространстве пользователя; В
В сервере NFS (NFSv2 и NFSv3), входящем в состав ядра Linux, выявлена удалённо эксплуатируемая уязвимость (CVE-2017-7895), позволяющая прочитать содержимое произвольных областей памяти ядра и пространства пользователя (от 1 до 4 Мб) через отправку специально оформленных запросов к NFS. Для успешного проведения атаки необходимо наличие доступного на запись NFS-раздела, примонтированного в системе с которой совершается атака. Проблема вызвана ошибкой, внесённой при добавлении изменения в код fs/nfsd более 10 лет назад (при подготовке ядра 2.6.22). Уязвимость устранена в выпусках 4.11 и 4.10.13. В дистрибутивах проблема пока остаётся неисправленной (Debian, RHEL, Ubuntu, SUSE).
Джейсон Доненфилд (Jason A. Donenfeld), выявил уязвимость в сетевом стеке ядра Linux, позволяющую удалённо инициировать переполнение буфера. Уязвимость вызвана ошибкой в коде drivers/net/macsec.c с реализацией стандарта IEEE 802.1AE (MACsec). Подробности пока не сообщаются, а CVE ID не назначен, но, судя по всему, эксплуатация возможна только в локальных сетях, в которых применяется достаточно редкая технология MACsec. Джейсон Доненфилд возглавляет компанию Edge Security и является достаточно известным исследователем безопасности и разработчиком открытого ПО. Например, в своё время он выявил такие уязвимости в ядре Linux, как CVE-2012-0056, CVE-2011-1485, CVE-2011-4594, CVE-2011-4330 и CVE-2010-4258. Джейсон также является автором cgit и WireGuard (новая реализация VPN для ядра Linux).
Майкл Опденакер (Michael Opdenacker), занимающийся разработкой встраиваемых систем, рассказал о методах, которые позволяют сформировать минимальную сборку ядра и системного окружения, пригодную для применения на системах с несколькими мегабайтами оперативной памяти или используемую в качестве загрузчика других систем. В частности, показано, что несмотря на существенное разрастание кодовой базы ядра и забвение проекта по минимизации ядра, вполне реально урезать современное ядро Linux до состояния, способного работать на системах с 2-6 Мб ОЗУ и требующего 2-4 Мб для размещения на постоянном носителе. Сокращение размера достигается не только отключением расширенной функциональности ядра ("make tinyconfig"), но и оптимизацией процесса сборки. Например, сборка ядра Linux 4.10 при помощи gcc 6.2 для ARM позволяет на 0.4% сократить размер, по сравнению со сборкой в gcc 4.7. Включение режима "-Os" и оптимизаций на этапе связывания (LTO) в GCC ("gcc -Os -flto") даёт возможность сократить размер на 2.8%.
Опубликованы сведения о 0-day уязвимости в ядре Linux (CVE-2017-7184), которая была использована на соревновании Pwn2Own 2017 для демонстрации атаки на Ubuntu Linux, позволившей локальному пользователю выполнить код с правами root. Уязвимость вызвана ошибкой во фреймворке преобразования сетевых пакетов XFRM, применяемом для реализации IPsec. В функции xfrm_replay_verify_len(), вызываемой из xfrm_new_ae(), не выполнялась проверка заданных пользователем параметров replay_window, записываемый в буфер состояний. Манипулируя содержимым, связанным с данным параметром, атакующий может организовать запись и чтение данных в области памяти ядра за пределами выделенного буфера. Несмотря на то, что эксплуатация был продемонстрирвоана в Ubuntu, проблема не специфична для данного дистрибутива и проявляется в любых других системах на базе ядра Linux. Как и в нескольких предыдущих root-уязвимостях в ядре, проблема может быть эксплуатирована только при включении пространств имён для идентификаторов пользователей