Накратко: Сигурността на Moodle зависи след PHP2Shell от PHP на сървъра, а не от Moodle. Тъй като платформите за обучение обработват данни на ученици, студенти и служители, бързото действие е важно. Пачнете PHP за уеб и cron, рестартирайте всички процеси и проверете config.php, moodledata, плъгините и админ акаунтите.
Какво означава PHP2Shell за операторите на Moodle
Moodle е разпространен в училища, висши училища, в продължаващото обучение и за вътрешни обучения във фирми. Платформата управлява имена, имейл адреси, принадлежност към курсове, оценки, предадени изпитни работи и публикации във форуми, в училищата често на непълнолетни. PHP уязвимостите CVE-2026-109618 и CVE-2026-109619 позволяват според екипа на PHP изпълнение на злонамерен код от разстояние без вход в системата.
Сървърите на Moodle са почти винаги достъпни от интернет, защото обучаващите се работят от вкъщи. BSI (Федерална служба за информационна сигурност на Германия) препоръчва при ниво на предупреждение 3 незабавна актуализация и, ако това не е възможно, уеб сървърите временно да се изключат от мрежата. За училищата и образователните институции това е организационно трудно, но може да се планира. Специфични за бранша насоки ще намерите на страницата ИТ сигурност за училища и образователни институции.
Сигурност на Moodle: проверка на версията на PHP за уеб и cron
Под Site administration > Server > Environment Moodle проверява версията на PHP и други изисквания. Под Server > PHP info администраторите виждат допълнително пълните данни за PHP. И двете описват уеб PHP.
Moodle се нуждае освен това от cron задача, която редовно изпълнява admin/cli/cron.php през PHP за командния ред. Тази версия може да се различава и също трябва да е пачната. Поправените версии на оригиналния проект са 8.5.12, 8.4.27, 8.3.36 и 8.2.35; backport-овете често носят по-стари номера. Кои версии на PHP поддържа Вашата версия на Moodle, проверете според системните изисквания в документацията на moodle.org. Как да рестартирате после всички процеси чисто, пише в Рестартиране на PHP-FPM и на всички worker процеси.
Директории и конфигурация в Moodle
| Място | Съдържание | Какво да проверите |
|---|---|---|
config.php |
достъп до базата данни, wwwroot, път към moodledata |
вмъкнат код, при подозрение сменете паролата |
moodledata/ |
файлово хранилище, предадени работи, сесии, кешове | извън коренната директория, без PHP файлове |
mod/, blocks/, local/, theme/ |
дейности, блокове, локални разширения, дизайни | непознати или променени плъгини |
admin/cli/ |
скриптове за командния ред | ползват се само през CLI |
Moodle предлага настройка, която пречи на промяната на пътищата до програми през уеб интерфейса. Тя принадлежи в config.php и затруднява извикването на програми на сървъра чрез отвлечен админ акаунт:
$CFG->preventexecpath = true;
Безопасни проверки в командния ред, като потребител на уеб сървъра:
# Извеждане на собствените проверки на Moodle за състояние и сигурност
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Търсене на PHP файлове в директорията с данни (адаптирайте пътя)
find /pfad/zu/moodledata -type f -name "*.php"
При подозрение за изтичане на данни в училище или висше училище бързо се включват няколко места: училищното ръководство, органът, длъжностните лица по защита на данните и при нужда надзорният орган. Запазете логовете от 20.10.2026 г. нататък и документирайте всяка мярка с час.
Плъгини, админ акаунти и качвания
Практичен съвет за планирането: актуализациите на PHP и рестартиранията не трябва да попадат в изпитни периоди или в текущи онлайн тестове. Moodle има режим за поддръжка, който информира потребителите предварително. Срещу PHP2Shell той обаче не защитава, защото и страницата за поддръжка се доставя от PHP.
Moodle живее от плъгини: дейности, инструменти за изпити, връзки с видеоконференции и с училищно управление. Всеки плъгин е допълнителен PHP код и трябва да съответства на версията на Moodle. Под Site administration Moodle показва налични актуализации за ядрото и плъгините. Премахнете напълно плъгините, които никой вече не ползва.
Проверете списъка на администраторите на сайта и глобалните роли с далечни права. Учителите и създателите на курсове обикновено не се нуждаят от глобални права. Активирайте двуфакторното удостоверяване най-малко за администраторите. Разрешените типове файлове за качване трябва да са възможно най-тесни; насоки за това предлага Сигурно реализиране на качване на файлове в PHP.
Какво може актуализацията на Moodle и какво не
Актуализация на Moodle затваря грешки в Moodle и често позволява по-нови версии на PHP. Тя не пачва PHP, не рестартира нито уеб, нито cron процеси и не премахва чужди файлове от moodledata, допълнителни администратори и променени плъгини. И дали през времето преди пача са изтекли данни, актуализацията не отговаря.
Moodle записва входовете и действията допълнително в собствени логове, които администраторите разглеждат под Site administration > Reports. Търсете там целенасочено нередни входове на администратори, нови акаунти с глобални роли и инсталации на плъгини от 17.10.2026 г. нататък. Експортирайте тези записи, преди автоматични почиствания да изтрият по-старите данни. Отчетите допълват логовете на уеб сървъра, но не ги заменят.
Как помага PHP SOS конкретно?
- Изясняваме отговорността за PHP и получаваме потвърждение за състоянието на пача и рестартирането на уеб и cron.
- Запазваме логове, база данни и
moodledataпреди всяка промяна. - Проверяваме конфигурацията, плъгините, администраторите, ролите и качванията.
- При желание поддържаме платформата постоянно в договора за поддръжка на сигурността, съобразено с учебната година и изпитните периоди.
Често задавани въпроси
Засегнат ли е Moodle от PHP2Shell?
Самият Moodle няма нова уязвимост, но работи на PHP. Ако PHP на сървъра е непачнат, според екипа на PHP нападател може да изпълнява код без вход в системата. Актуализацията на Moodle не променя това.
Къде виждам версията на PHP в Moodle?
Под Site administration > Server > Environment Moodle проверява версията на PHP спрямо изискванията си. Дали е внесен backport, Moodle не показва; това потвърждава операторът на сървъра.
Защо moodledata трябва да е извън уеб директорията?
Там лежат качени файлове, предадени работи, сесии и кешове. Ако директорията е достъпна през уеб, съдържанието може да се извика директно. Moodle затова изисква място извън коренната директория.
Кой отговаря за актуализацията на PHP в училищата?
Различно е: училищният орган, областно предприятие, общински център за данни или доставчик. Изяснете отговорността писмено и поискайте потвърждение за състоянието на пача и рестартирането.