Текуща ситуация: PHP2Shell. Две критични уязвимости в PHP (CVSS 9,2) позволяват злонамерен код без вход. Корекции от 21.10.2026 г.Какво да направите сега →

Сигурност на Moodle след PHP2Shell: как да защитите правилно платформи за обучение

Moodle управлява данни на участници, оценки и предадени изпитни работи, често на непълнолетни. След PHP2Shell значение имат пачът за PHP, рестартирането на уеб и cron, защитен moodledata и проверени плъгини.

Актуалност 4 мин. четенеПлатформи

Накратко: Сигурността на 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 в училищата?

Различно е: училищният орган, областно предприятие, общински център за данни или доставчик. Изяснете отговорността писмено и поискайте потвърждение за състоянието на пача и рестартирането.

Източници

Незабавен контакт

Всеки час има значение. Пишете ни сега.

Опишете накратко системата, версията на PHP и какво сте забелязали. Ние се свързваме с Вас, уточняваме ситуацията и работим отдалечено, докато инцидентът бъде приключен и документиран.

Незабавна помощ