След третата година от вълната от уязвимости (, , , , ) в подсистемата AF_PACKET на ядрото на Linux още един проблем (), който позволява на локален непривилегирован потребител да изпълнява код с права 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-правa в системата.
Проблемът присъства в ядрото от юли 2008 година, т.е. проявява се във всички актуални ядра. Поправката все още е налична под формата на . Може да се проследи появата на актуализации на пакети в дистрибутивите на следните страници: , , , , , .
Източник: opennet.ru
