В ядре Linux найдена уязвимость, существовавшая там на протяжении 11 лет

Исследователь информационной безопасности Андрей Коновалов обнаружил уязвимость в ядре Linux, которая существует с 2005 года и затрагивает популярные дистрибутивы, в том числе Debian, OpenSUSE, Redhat и Ubuntu.

Уязвимость была зафиксирована в реализации протокола Datagram Congestion Control Protocol (DCCP). Наиболее ранняя уязвимая версия (2.6.18), обнаруженная Коноваловым, датируется сентябрем 2006 года. Эксперт считает, что ошибка еще появилась в первой версии с поддержкой DCCP (2.6.14), выпущенной в октябре 2005 года. Для использования уязвимости ядро должно быть собрано с условием CONFIG_IP_DCCP. В большей части дистрибутивов эта опция по умолчанию активирована.

Уязвимость заключается в том, каким образом текущая имплементация DCCP осуществляет освобождение ресурсов SKB (socket buffer) для пакета DCCP_PKT_REQUEST в случае с сокетом, имеющим активную опцию IPV6_RECVPKTINFO. Коновалов отмечает, что с помощью уязвимости злоумышленник сможет перезаписать информацию в любом объекте ядра, используя технику heap spraying и заменяя данные на что-то произвольное. Помимо этого, если в перезаписанном объекте содержались указатели функций, то хакер сможет выполнить в ядре внедренный произвольный код.

17 февраля уязвимость была ликвидирована в официальной версии ядра, однако еще не устранена в большинстве популярных дистрибутивов. По этой причине Коновалов пока решил не публиковать PоC-эксплоит, чтобы дать пользователям время на инсталляцию обновлений.