Stručne: Bezpečnosť Moodle závisí po PHP2Shell od PHP servera, nie od Moodle. Keďže vzdelávacie platformy spracúvajú údaje žiakov, študentov a zamestnancov, je rýchle konanie dôležité. Záplatujte PHP pre web aj cron, reštartujte všetky procesy a skontrolujte config.php, moodledata, pluginy a admin účty.
Čo PHP2Shell znamená pre prevádzkovateľov Moodle
Moodle je rozšírené na školách, vysokých školách, vo vzdelávaní dospelých a pre interné školenia vo firmách. Platforma spravuje mená, e-mailové adresy, príslušnosť ku kurzom, známky, odovzdané skúšky a príspevky vo fórach, na školách často maloletých. Zraniteľnosti PHP CVE-2026-109618 a CVE-2026-109619 podľa tímu PHP umožňujú spustenie škodlivého kódu na diaľku bez prihlásenia.
Servery Moodle sú takmer vždy dostupné z internetu, pretože sa študuje z domu. BSI (nemecký Spolkový úrad pre informačnú bezpečnosť) odporúča pri stupni varovania 3 okamžitú aktualizáciu a, ak to nejde, webové servery dočasne odpojiť od siete. Pre školy a vzdelávacie inštitúcie je to organizačne ťažké, ale plánovateľné. Odvetvové informácie nájdete na stránke IT bezpečnosť pre školy a vzdelávacie inštitúcie.
Bezpečnosť Moodle: skontrolovať verziu PHP pre web a cron
Pod Administrácia webu > Server > Prostredie kontroluje Moodle verziu PHP a ďalšie požiadavky. Pod Server > Informácie o PHP vidia administrátori navyše úplné údaje o PHP. Obe popisujú webové PHP.
Moodle okrem toho potrebuje cron úlohu, ktorá pravidelne spúšťa admin/cli/cron.php cez PHP z príkazového riadku. Táto verzia sa môže líšiť a musí byť tiež záplatovaná. Opravené upstream verzie sú 8.5.12, 8.4.27, 8.3.36 a 8.2.35; backporty často nesú staršie čísla. Ktoré verzie PHP vaša verzia Moodle podporuje, skontrolujte podľa systémových požiadaviek v dokumentácii na moodle.org. Ako potom čisto reštartovať všetky procesy, je na stránke Reštartovať PHP-FPM a všetkých workerov.
Adresáre a konfigurácia v Moodle
| Miesto | Obsah | Bod kontroly |
|---|---|---|
config.php |
Prístup k databáze, wwwroot, cesta k moodledata |
Vložený kód, pri podozrení zmeniť heslo |
moodledata/ |
Úložisko súborov, odovzdané práce, relácie, cache | Mimo koreňa dokumentov, žiadne súbory PHP |
mod/, blocks/, local/, theme/ |
Aktivity, bloky, lokálne rozšírenia, dizajny | Neznáme alebo zmenené pluginy |
admin/cli/ |
Skripty príkazového riadku | Použiteľné len cez CLI |
Moodle ponúka nastavenie, ktoré bráni zmene ciest k programom cez webové rozhranie. Patrí do config.php a sťažuje volanie programov na serveri cez unesený admin účet:
$CFG->preventexecpath = true;
Neškodné kontroly v príkazovom riadku, ako používateľ webového servera:
# Vypísať vlastné kontroly stavu a bezpečnosti Moodle
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Hľadať súbory PHP v dátovom adresári (cestu prispôsobiť)
find /pfad/zu/moodledata -type f -name "*.php"
Pri podozrení na únik údajov na škole alebo vysokej škole je rýchlo zapojených viac miest: vedenie školy, zriaďovateľ, zodpovedné osoby za ochranu údajov a prípadne dozorný orgán. Zálohujte logy od 20. 10. 2026 a každé opatrenie zdokumentujte s časom.
Pluginy, admin účty a nahrávky
Praktická poznámka k plánovaniu: aktualizácie PHP a reštarty by nemali spadnúť do skúšobného obdobia ani do prebiehajúcich online testov. Moodle má režim údržby, ktorý používateľov vopred informuje. Pred PHP2Shell však nechráni, pretože aj stránku údržby doručuje PHP.
Moodle žije z pluginov: aktivity, skúšobné nástroje, napojenia na videokonferencie a školskú správu. Každý plugin je dodatočný kód PHP a musí zodpovedať verzii Moodle. V administrácii webu zobrazuje Moodle dostupné aktualizácie jadra a pluginov. Pluginy, ktoré už nikto nepoužíva, úplne odstráňte.
Skontrolujte zoznam administrátorov webu a globálne roly s rozsiahlymi právami. Učitelia a tvorcovia kurzov zvyčajne globálne práva nepotrebujú. Aktivujte dvojfaktorové prihlásenie aspoň pre administrátorov. Povolené typy súborov pre nahrávky by mali byť čo najužšie; tipy k tomu ponúka stránka Bezpečné nahrávanie súborov v PHP.
Čo aktualizácia Moodle dokáže a čo nie
Aktualizácia Moodle uzatvára chyby v Moodle a často umožňuje novšie verzie PHP. PHP nezáplatuje, nereštartuje ani webové, ani cron procesy a neodstráni cudzie súbory z moodledata, ďalších administrátorov ani zmenené pluginy. Ani to, či v čase pred záplatou unikli údaje, aktualizácia nezodpovie.
Moodle navyše zaznamenáva prihlásenia a akcie vo vlastných logoch, ktoré administrátori vidia pod Administrácia webu > Správy. Hľadajte tam cielene nápadné prihlásenia administrátorov, nové účty s globálnymi rolami a inštalácie pluginov od 17. 10. 2026. Tieto záznamy exportujte skôr, než automatické čistenie zmaže staršie údaje. Správy dopĺňajú logy webového servera, ale ich nenahrádzajú.
Ako konkrétne pomáha PHP SOS?
- Vyjasníme zodpovednosť za PHP a necháme si potvrdiť stav záplat a reštart webu aj cronu.
- Zálohujeme logy, databázu a
moodledatapred akoukoľvek zmenou. - Kontrolujeme konfiguráciu, pluginy, administrátorov, roly a nahrávky.
- Na požiadanie platformu dlhodobo spravujeme v bezpečnostnej zmluve o údržbe, zladenej so školským rokom a skúšobnými obdobiami.
Časté otázky
Týka sa PHP2Shell Moodle?
Samotné Moodle nemá novú zraniteľnosť, ale beží na PHP. Ak je PHP servera nezáplatované, môže útočník podľa tímu PHP spustiť kód bez prihlásenia. Aktualizácia Moodle na tom nič nemení.
Kde v Moodle vidím verziu PHP?
Pod Administrácia webu > Server > Prostredie kontroluje Moodle verziu PHP voči svojim požiadavkám. Či je nasadený backport, Moodle neukazuje; potvrdí to prevádzkovateľ servera.
Prečo musí byť moodledata mimo webového adresára?
Nachádzajú sa tam nahrané súbory, odovzdané práce, relácie a cache. Ak je adresár dostupný cez web, dá sa obsah možno priamo vyvolať. Moodle preto vyžaduje umiestnenie mimo koreňa dokumentov.
Kto je pri školách zodpovedný za aktualizáciu PHP?
Je to rôzne: zriaďovateľ školy, krajská prevádzková organizácia, komunálne dátové centrum alebo dodávateľ. Zodpovednosť si vyjasnite písomne a nechajte si potvrdiť stav záplat a reštart.