Aktualna sytuacja: PHP2Shell. Dwie krytyczne luki w PHP (CVSS 9,2) umożliwiają wykonanie złośliwego kodu bez logowania. Poprawki od 21.10.2026.Co należy teraz zrobić →

Bezpieczeństwo Moodle po PHP2Shell: jak prawidłowo zabezpieczyć platformy edukacyjne

Moodle zarządza danymi uczestników, ocenami i pracami egzaminacyjnymi, często małoletnich. Po PHP2Shell liczą się poprawka PHP, restart WWW i crona, chroniony moodledata i sprawdzone wtyczki.

Stan 4 min czytaniaPlatformy

Krótko: Bezpieczeństwo Moodle zależy po PHP2Shell od PHP serwera, a nie od Moodle. Ponieważ platformy edukacyjne przetwarzają dane uczniów, studentów i pracowników, szybkie działanie jest ważne. Proszę załatać PHP dla WWW i crona, zrestartować wszystkie procesy i sprawdzić config.php, moodledata, wtyczki i konta administratorów.

Co PHP2Shell oznacza dla operatorów Moodle

Moodle jest rozpowszechnione w szkołach, uczelniach, kształceniu ustawicznym i przy wewnętrznych szkoleniach w firmach. Platforma zarządza imionami i nazwiskami, adresami e-mail, przynależnością do kursów, ocenami, pracami egzaminacyjnymi i wpisami na forach, w szkołach często dotyczącymi małoletnich. Luki PHP CVE-2026-109618 i CVE-2026-109619 umożliwiają według zespołu PHP zdalne wykonanie złośliwego kodu bez logowania.

Serwery Moodle są prawie zawsze osiągalne z internetu, ponieważ uczący się pracują z domu. BSI (niemiecki Federalny Urząd ds. Bezpieczeństwa w Technice Informatycznej) zaleca przy poziomie ostrzegawczym 3 natychmiastową aktualizację, a jeśli to niemożliwe, czasowe odłączenie serwerów WWW od sieci. Dla szkół i instytucji kształcenia jest to trudne organizacyjnie, ale możliwe do zaplanowania. Wskazówki branżowe znajdą Państwo w artykule Bezpieczeństwo IT dla szkół i instytucji kształcenia.

Bezpieczeństwo Moodle: sprawdzanie wersji PHP dla WWW i crona

W Administracja witryną > Serwer > Środowisko Moodle sprawdza wersję PHP i dalsze wymagania. W Serwer > Informacje o PHP administratorzy widzą dodatkowo pełne dane PHP. Oba opisują PHP sieciowe.

Moodle potrzebuje ponadto zadania cron, które regularnie uruchamia admin/cli/cron.php przez PHP wiersza poleceń. Ta wersja może się różnić i również musi być załatana. Naprawione wersje upstream to 8.5.12, 8.4.27, 8.3.36 i 8.2.35; backporty noszą często starsze numery. To, które wersje PHP obsługuje Państwa wersja Moodle, można sprawdzić w wymaganiach systemowych w dokumentacji na moodle.org. Jak potem prawidłowo zrestartować wszystkie procesy, opisuje artykuł Restart PHP-FPM i wszystkich procesów worker.

Katalogi i konfiguracja w Moodle

Miejsce Zawartość Punkt kontroli
config.php Dane dostępowe do bazy danych, wwwroot, ścieżka do moodledata Dopisany kod, po podejrzeniu zmienić hasło
moodledata/ Składowanie plików, prace, sesje, pamięci podręczne Poza katalogiem głównym dokumentów, brak plików PHP
mod/, blocks/, local/, theme/ Aktywności, bloki, rozszerzenia lokalne, motywy Nieznane lub zmienione wtyczki
admin/cli/ Skrypty wiersza poleceń Używane wyłącznie przez CLI

Moodle oferuje ustawienie, które uniemożliwia zmianę ścieżek programów przez interfejs WWW. Należy do config.php i utrudnia wywoływanie programów na serwerze przez przejęte konto admina:

$CFG->preventexecpath = true;

Bezpieczne kontrole w wierszu poleceń, jako użytkownik serwera WWW:

# Wyświetlenie własnych kontroli statusu i bezpieczeństwa Moodle
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Wyszukanie plików PHP w katalogu danych (dostosować ścieżkę)
find /pfad/zu/moodledata -type f -name "*.php"
Ważne

Przy podejrzeniu wycieku danych w szkole lub na uczelni szybko zaangażowanych jest kilka podmiotów: dyrekcja, organ prowadzący, inspektorzy ochrony danych i ewentualnie organ nadzorczy. Proszę zabezpieczyć logi od 20.10.2026 i dokumentować każde działanie z godziną.

Wtyczki, konta admina i przesyłanie plików

Praktyczna uwaga dla planowania: aktualizacje PHP i restarty nie powinny przypadać na okresy egzaminacyjne ani trwające testy online. Moodle ma tryb konserwacji, który wcześniej informuje użytkowników. Przed PHP2Shell nie chroni on jednak, ponieważ także strona konserwacji jest dostarczana przez PHP.

Moodle żyje z wtyczek: aktywności, narzędzi egzaminacyjnych, połączeń z wideokonferencjami i administracją szkoły. Każda wtyczka to dodatkowy kod PHP i musi pasować do wersji Moodle. W Administracji witryną Moodle pokazuje dostępne aktualizacje rdzenia i wtyczek. Wtyczki, z których nikt już nie korzysta, proszę usunąć w całości.

Proszę sprawdzić listę administratorów witryny i role globalne z daleko idącymi uprawnieniami. Nauczyciele i twórcy kursów zwykle nie potrzebują uprawnień globalnych. Proszę włączyć uwierzytelnianie dwuskładnikowe przynajmniej dla administratorów. Dozwolone typy plików przy przesyłaniu powinny być możliwie wąskie; wskazówki podaje artykuł Bezpieczna obsługa przesyłania plików w PHP.

Co potrafi aktualizacja Moodle, a czego nie

Aktualizacja Moodle zamyka błędy w Moodle i często umożliwia nowsze wersje PHP. Nie łata PHP, nie restartuje ani procesów WWW, ani crona i nie usuwa obcych plików z moodledata, dodatkowych administratorów ani zmienionych wtyczek. Aktualizacja nie odpowiada też na pytanie, czy w czasie przed poprawką doszło do wycieku danych.

Moodle protokołuje logowania i działania dodatkowo we własnych logach, które administratorzy przeglądają w Administracja witryną > Raporty. Proszę szukać tam konkretnie nietypowych logowań administratorów, nowych kont z rolami globalnymi i instalacji wtyczek od 17.10.2026. Wpisy te należy wyeksportować, zanim automatyczne czyszczenie usunie starsze dane. Raporty uzupełniają logi serwera WWW, ale ich nie zastępują.

Jak konkretnie pomaga PHP SOS?

  • Ustalamy odpowiedzialność za PHP i prosimy o potwierdzenie stanu poprawek oraz restartu WWW i crona.
  • Zabezpieczamy logi, bazę danych i moodledata przed każdą zmianą.
  • Sprawdzamy konfigurację, wtyczki, administratorów, role i przesyłane pliki.
  • Na życzenie prowadzimy platformę na stałe w ramach umowy serwisowej bezpieczeństwa, uzgodnionej z rokiem szkolnym i terminami egzaminów.

Częste pytania

Czy Moodle jest dotknięte przez PHP2Shell?

Samo Moodle nie ma nowej luki, ale działa na PHP. Jeśli PHP serwera jest niezałatane, atakujący może według zespołu PHP wykonać kod bez logowania. Aktualizacja Moodle niczego tu nie zmienia.

Gdzie w Moodle zobaczę wersję PHP?

W Administracja witryną > Serwer > Środowisko Moodle sprawdza wersję PHP względem swoich wymagań. Tego, czy wprowadzono backport, Moodle nie pokazuje; potwierdza to operator serwera.

Dlaczego moodledata musi leżeć poza katalogiem webowym?

Znajdują się tam przesłane pliki, prace, sesje i pamięci podręczne. Jeśli katalog jest osiągalny przez sieć, treści można być może pobrać bezpośrednio. Moodle wymaga dlatego miejsca poza katalogiem głównym dokumentów.

Kto w szkołach odpowiada za aktualizację PHP?

To bywa różnie: organ prowadzący szkołę, zakład krajowy, komunalne centrum danych lub dostawca usług. Proszę ustalić odpowiedzialność na piśmie i poprosić o potwierdzenie stanu poprawek i restartu.

Źródła

Kontakt natychmiast

Liczy się każda godzina. Proszę napisać do nas teraz.

Proszę krótko opisać system, wersję PHP i obserwacje. Skontaktujemy się z Państwem, ustalimy sytuację i będziemy pracować zdalnie, aż incydent zostanie zamknięty i udokumentowany.

Natychmiastowa pomoc