W ciągu ostatnich lat niewiele kwestii wywołało tak duży spór i podział wśród linuksowej społeczności, jak systemd i jego implementacja w najpopularniejszych dystrybucjach. Dla wielu nowy menedżer usług był powodem do migracji na systemy, które jeszcze go nie wykorzystują. Wygląda jednak na to, że systemd to po prostu smutna konieczność. Problem w tym, że w tej konieczności właśnie odkryto poważne luki bezpieczeństwa.
Nie jedna, lecz trzy dziury w systemd
Podatności w systemd odnaleźli eksperci z Qualys Security Advisory. Gwoli ścisłości – znajdują się one w journald, a zatem demonie odpowiedzialnym za zbieranie i przechowywanie logów. Dwie z podatności, CVE-2018-16864 oraz CVE-2018-16865 to błędy nadpisania pamięci – pierwsza z nich prowadzi do przepełnienia bufora, druga do dowolnej alokacji pamięci. Trzecia luka, CVE-2018-16866, to błąd przekroczenia zakresu. W tej chwili na żadną z nich nie są dostępne łatki.
Qualys opublikowała już szczegółowe informacje o exploitach. Dzięki temu wiemy, że podatne są zarówno maszyny z procesorami o architekturach i386, jak i amd64. W pierwszym przypadku rozszerzenie uprawnień do roota w wyniku wycieku pamięci trwa 10 minut, na przejęcie komputerów z amd64 potrzeba 70 minut. Dwa ze scenariuszy możliwe są do zrealizowanie lokalnie, lecz jedną z luk można także wykorzystać zdalnie.
Łatek wciąż nie ma, ale nie wszyscy są zagrożeni
Ofiarami ataków wykorzystujących odnalezione właśnie luki mogą być użytkownicy zdecydowanej większości dystrybucji wykorzystujących systemd. Wyjątkami są SUSE LE 15, openSUSE Leap 15.0 oraz Fedora 28 i 29, gdyż do kompilacji używają GCC z -fstack-clash-protection
, który utrudnia wykorzystywanie wycieków pamięci do ataku. Red Hat zakwalifikował luki jako ważne i umiarkowanie ważne, ale rezultatów prac nad łatkami, jak już wspominaliśmy, brakuje.