Kilka dni temu ogłoszono, informacje o audycie bezpieczeństwa który ujawnił pięć krytycznych luk w popularnym multiplekserze terminalowym Ekran GNU, służy do zarządzania wieloma sesjami konsoli na jednym terminalu.
Jedna z nich (CVE-2025-23395, najniebezpieczniejsza luka) umożliwia atakującemu uzyskanie uprawnień roota w systemach dotkniętych problemem (luka dotyczy wyłącznie wersji 5.0.0 GNU Screen), w tym w dystrybucjach takich jak Fedora, Arch Linux, NetBSD i innych. Inne wersje, takie jak Debian, Ubuntu i RHEL, nadal korzystają jednak z gałęzi 4.x, która nie jest podatna na tę konkretną lukę.
CVE-2025-23395: Krytyczne podwyższenie uprawnień
Wspomniano, że problem występuje gdy GNU Screen jest uruchamiany z bitem setuid root (przypadek Arch i NetBSD), ponieważa funkcja logfile_reopen() jest wykonywana przed obniżeniem uprawnień, co pozwala użytkownikowi na manipulowanie rejestrem w celu zapisu dowolnych plików jako root. W typowej farmie iAtakujący usuwa oryginalny plik dziennika i zastępuje go linkiem symbolicznym. do pliku systemowego. Po ponownym otwarciu pliku Screen zapisuje go z uprawnieniami roota, umożliwiając przedostanie się do niego szkodliwej zawartości.
Problem ten dotyczy programu Screen 5.0.0 uruchamianego z uprawnieniami setuid-root. Funkcja logfile_reopen() nie usuwa uprawnień, gdy działa na ścieżce podanej przez użytkownika. Umożliwia to użytkownikom bez uprawnień tworzenie plików w dowolnych lokalizacjach z uprawnieniami roota, (rzeczywistym) prawem własności grupy wywołującego użytkownika i trybem pliku 0644. Wszystkie dane zapisane w Screen PTY zostaną zarejestrowane w tym pliku. Istniejące pliki można również wykorzystać do rejestracji w następujący sposób: dane zostaną dołączone do odpowiedniego pliku, ale tryb i właściciel pliku pozostaną niezmienione.
Ten atak może doprowadzić do całkowitej kontroli nad systemem, jeśli zostanie odpowiednio wykorzystany, ponieważ pozwala na modyfikację poufnych plików lub zmianę skryptów startowych. Fedora jest częściowo chroniona, ponieważ Screen jest zainstalowany z bitem setgid, co ogranicza powierzchnię ataku.
Inne istotne luki w zabezpieczeniach
Audyt przeprowadzony przez zespół ds. bezpieczeństwa SUSE Linux, zidentyfikowano również inne ważne awarie:
- CVE-2025-46802: W sesjach wielodostępnych atakujący może uzyskać globalne uprawnienia do odczytu i zapisu na urządzeniach TTY, takich jak /dev/pts/1, co ma wpływ zarówno na gałęzie 4.x, jak i 5.x.
- CVE-2025-46803: Wersja 5.0 ustawia niebezpieczne uprawnienia (0622) na urządzeniach PTY, umożliwiając zapis każdemu użytkownikowi.
- CVE-2025-46804: Wyciek informacji pozwala na wywnioskowanie istnienia plików lub katalogów na podstawie komunikatów o błędach pojawiających się podczas definiowania zmiennej SCREENDIR.
- CVE-2025-46805: Wyścig warunków podczas wysyłania sygnałów SIGCONT i SIGHUP może skutkować odmową usługi.
Wykryto również niewłaściwe użycie strncpy, co może powodować awarie podczas wykonywania poleceń ze specjalnym formatowaniem. Jest to problem występujący wyłącznie w wersji 5.0.
Brak konserwacji i wsparcia ze strony SUSE
Odkrycie tych luk w zabezpieczeniach ujawniło poważniejsze problemy w utrzymaniu GNU Screen. Według zespołu SUSE, Obecni opiekunowie projektu nie rozumieją w pełni bazy kodu ani problemów z bezpieczeństwem, co zmusiło ich do samodzielnego opracowania poprawek dla niektórych odkrytych luk. Raport wysłano deweloperom 7 lutego, ale w uzgodnionym 90-dniowym okresie karencji nie udało się usunąć wszystkich luk w zabezpieczeniach.
Co zrobić, jeśli używasz GNU Screen?
Użytkownicy systemów zawierających Screen 5.0.0 z setuid root należy natychmiast dokonać aktualizacji do wersji 5.0.1 lub tymczasowo powróć do wersji 4.x, jeśli nie ma dostępnych pakietów. Jako środek zaradczy można również usunąć bit setuid z pliku wykonywalnego Screen:
sudo chmod u-s /usr/bin/screen
Jednak Może to mieć wpływ na funkcjonalność takie jak współdzielenie sesji między użytkownikami. Na koniec warto wspomnieć, że niedawno wydana wersja 5.0.1 naprawia ten i inne błędy i jest już dostępna na dystrybucjach takich jak Arch Linux i FreeBSD.
Jeżeli jesteś chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w następujący link.