В реализация на интерфейса за асинхронен вход и изход io_uring, включен в ядрото на Linux от версия 5.1, е открита уязвимост (CVE-2022-29582), която позволява на непривилегирован потребител да получи права root в системата, включително при стартиране на експлоита от контейнер. Уязвимостта е causada от достъп до вече освободен блок памет и се проявява в ядрото на Linux от версия 5.10, и е отстранена през април в обновления 5.10.111, 5.15.34 и 5.17.3.
Достъпът до освободената памет се дължи на състояние на състезание при обработка на таймаути в функцията io_flush_timeouts(), която премахва записа за таймаута от списъка и го отменя, без да провери съществуването или изтриването на таймаута в този момент.
Изследователите са подготвили работещ експлоит, който не изисква за своята работа включването на пространства с идентификатори на потребители (user namespaces) и може да предостави root достъп в основната система при стартиране на експлоита от непривилегирован потребител в изолиран контейнер. Експлоитът също така работи в изолирана среда nsjail в дистрибуцията Google COS (Container Optimized OS), базирана на Chromium OS и използвана в Google Cloud Platform. виртуални машини Compute Engine. Експлоитът е проектиран да работи с версии на ядрото от 5.10 до 5.12.
Източник: opennet.ru
