Разработчики Linux выпустили критическое обновление для этой открытой
операционной системы после того, как исследователи обнаружили уязвимость в ее
ядре, делающую все версии, выпущенные за последние восемь лет, уязвимыми к
полному взлому.
Баг кроется в способе выполнения регулярных операций уровня ядра (например –
взаимодействия sock_sendpage), когда они остаются незадействованными. Вместо
того чтобы ссылаться на соответствующий заполнитель (например, sock_no_accept),
указатель функции остается неинициализированным. Sock_sendpage не всегда
ратифицирует указатель перед разыменовыванием, что оставляет ОС открытой к
локальному повышению уровня привилегий, в результате которого уязвимая машина
может быть полностью скомпрометирована.
Жюльен Тинне
пишет, что поскольку уязвимость приводит к выполнению ядром кода по нулевому указателю,
эксплуатировать ее проще простого. Для этого атакующему достаточно лишь
поместить код в первую страницу, которая будет выполняться с привилегиями уровня
ядра.
Тинне и его коллега Тавис Орманди выпустили образец кода эксплоита, за
несколько минут видоизменив свой предыдущий эксплоит. По их словам,
подверженными являются все версии ядер 2.4 и 2.6, выпущенные с мая 2001 года.
Эксперты, которые не были непосредственно связаны с работой по обнаружению
данной уязвимости, на момент написания новости все еще продолжают изучать
предоставленные материалы, но уже сейчас по крайней мере один из них заявил, что
на первый взгляд найденная дыра требует безотлагательных действий.
Это уже второй случай менее чем за месяц, когда в ядре Linux обнаруживается
серьезная уязвимость. В середине июля один из исследователей
предупредил разработчиков
этой ОС о наличии бага под названием "разыменовывание пустого указателя",
который ставил новейшие версии Linux под угрозу полной компрометации.
Более подробно о последней уязвимости можно почитать
здесь, а дополнительные детали относительно патча доступны
здесь.