Vulnérabilité dans systemd qui pourrait potentiellement vous permettre d'élever vos privilèges

Dans le gestionnaire système systemd identifié vulnérabilité (CVE-2020-1712), qui vous permet potentiellement d'exécuter votre code avec des privilèges élevés en envoyant une requête spécialement conçue sur le bus DBus. Le problème est résolu dans la version de test système 245-rc1 (patchs qui résolvent le problème : 1, 2, 3). La vulnérabilité a été corrigée dans les distributions Ubuntu, Fedora, RHEL (apparaît dans RHEL 8, mais n'affecte pas RHEL 7), CentOS и SUSE / openSUSE, mais au moment de la rédaction de cet article, la nouvelle n'est toujours pas corrigée Debian и Arch Linux.

Уязвимость вызвана обращением к уже освобождённой области памяти (use-after-free), возникающем при асинхронном выполнении запросов к Polkit во время обработки DBus-сообщений. Некоторые DBus-интерфейсы используют кэш для хранения объектов на короткое время и очищают элементы кэша как только шина DBus освободится для обработки других запросов. Если обработчик DBus-метода использует bus_verify_polkit_async(), ему возможно потребуется ожидать завершения действия в Polkit. После готовности Polkit обработчик вызывается повторно и обращается к уже ранее распределённым в памяти данным. Если запрос к Polkit выполняется слишком долго, то элементы в кэше успевают очистится до того, как обработчик DBus-метода будет вызван второй раз.

Parmi les services permettant d'exploiter la vulnérabilité, on note systemd-machined, qui fournit l'API DBus org.freedesktop.machine1.Image.Clone, conduisant au stockage temporaire des données dans le cache et à un accès asynchrone à Polkit. Interface
org.freedesktop.machine1.Image.Clone est disponible pour tous les utilisateurs non privilégiés du système, ce qui peut faire planter les services systemd ou potentiellement provoquer l'exécution de code en tant que root (le prototype d'exploit n'a pas encore été démontré). Le code qui a permis l'exploitation de la vulnérabilité était ajoutée en systemd-usiné en version 2015 systemd 220 (RHEL 7.x utilise systemd 219).

Source: opennet.ru

Ajouter un commentaire