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